Buonasera a tutti,
sto creando un'applicazione java dove devo gestire la disconnessione utenti.
Il mio problema è che l'evento di disconnessione "non arriva" perché sono ferma su una read...
Ecco il codice:
Ho letto su altri forum che dovrei usare al posto della read una select() con un timeout ma non ho capito come fare...codice:public class ThreadDisconnessioneClient extends Thread { private GuiPrivatoClient guiClient; private Socket stato; BufferedReader in; PrintWriter out; String esito; private ClientMain client; private boolean disconnetti; public ThreadDisconnessioneClient(GuiPrivatoClient gui, Socket s, ClientMain cm){ guiClient = gui; stato = s; client = cm; disconnetti = client.terminaChiamata; } public void run(){ System.out.println("ho avviato thread disconnessione client"); while(disconnetti == false){ try { in = new BufferedReader(new InputStreamReader(stato.getInputStream())); esito = in.readLine(); //ECCO, E' QUI AD ASPETTARE UNA EVENTUALE DISCONNESSIONE DEL CLIENT E NON SI ACCORGE DELLA PROPRIA } catch (IOException e) { e.printStackTrace(); } System.out.print("DisconnessioneClient: ho letto "+esito); if (esito.equals("quit")); guiClient.mostraChiudi(); disconnetti = client.terminaChiamata; } try { System.out.println("DisconnessioneClient stampa quit"); out = new PrintWriter(stato.getOutputStream()); out.write("quit"); } catch (IOException e) { e.printStackTrace(); } } }
Qualcuno sa aiutarmi?? grazie mille!!

Rispondi quotando