ci ho capito qualcosina di più..
in caso di problemi sulla linea il socket rimane bloccato all'interno del ciclo
codice:
while(st!=null){
st = in.readLine();
if (st!=null) {
st = st.trim();
doCommand(st);
}
} // FINE CICLO WHILE
in attesa di un comando che non riceverà mai, visto che in realtà la comunicazione client server si è interrotta...
adesso ho trovato un'istruzione per generera un'eccezione ogni tot tempo di inattività..
codice:
socket.setSoTimeout(10000);
BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
String st="";
while(st!=null){
try{
st = in.readLine();
if (st!=null) {
st = st.trim();
doCommand(st);
}
}catch(InterruptedIOException timeout){
bb.message("Timeout connessione : " + ses.getLogin() + "(" + ses.logedIn + ")");
break;
}
}
mi piacerebbe come ultima cosa trovare un modo per verificare se il socket è aperto..
così ogni 10 secondi di inattività genero l'eccezione, controllo se il socket è ancora aperto e solo se non lo è chiudo ed esco dal ciclo..
nessuno sa darmi una dritta ??