ciao a tutti, ho un grosso problema..
sto sviluppando un server ftp :
ad ogni connessione che riceve apre un nuovo thread con runnable e fin qui nessun problema..
quando poi l'utente si disconnette (ad esempio con quit), vengono svolte delle operazioni particolari sul mio server.
il problema che ho invece è che non riesco ad intercettare quando la connessione socket cade, ad esempio per una assenza di rete, e non vengono eseguite correttamente le operazioni di chiusura sul server..
come posso fare ? qualche suggerimento / idea ??
posto qui il codice..
ho messo un commento a fianco alla riga che richiama le operazioni di disconnessione..
purtroppo di li non passa però..
codice:public void run(){ try { BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream() ) ); String st=""; while(st!=null){ st = in.readLine(); if (st!=null) { st = st.trim(); doCommand(st); } } // FINE CICLO WHILE }catch(IOException e) { if (ses.logedIn) bb.probeException(e, "Could not read from sessionnumber: " + ses.sessionNr + ". The username was: " + ses.getLogin() + "."); } // CHIUSURA DEL SOCKET try{ socket.close(); }catch(Exception e){ bb.probeException(e, "Cold not close the connection to sessionnumber: " + ses.sessionNr + ". The username was: " + ses.getLogin() + "."); } bb.message("Fine connessione : " + ses.getLogin() + "(" + ses.logedIn + ")"); dock.disconnect(this); // IN QUESTA RIGA NON PASSA SE MUORE LA CONNESSIONE ses.us.userDisconnected(UserSessionObserver.USER_NORMAL_END); }


Rispondi quotando