sto sviluppando un'applicazione lato client che deve connettersi a un server(di cui ho solo l'eseguibile e quindi NON modificabile).
Finora il mio sviluppo è stato in laboratorio su una macchina che montava windows XP e il codice che doveva far disconnettere il client era il seguente:
- Codice: Seleziona tutto
public void disconnect(){
dispatcher.stop();
try {
socket.shutdownInput();
socket.shutdownOutput();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Dove dispatcher è un thread che deve rimanere in attesa di eventuali messaggi da parte del server(a questo proposito sono costretto a utilizzare lo stop che è deprecated,se avete suggerimenti in proposito siete liberi di darli).
Ora,su XP questa procedura funziona perfettamente: il mio programma si chiude e il server continua a esistere com'è giusto che sia.
Su Vista invece il server crasha!Entra in un loop infinito in cui viene visualizzata la stringa
MESSAGE=?NULL
Ho provato anche a eseguirlo in modalità compatibile con XP ma niente...a cosa può essere dovuto?