Si je tue le processus Socket Server, mon processus client Socket ne reçoit pas d'erreurs, il continue à boucler indéfiniment sur le code suivant:java, client detect serveur est décédé
public void run() {
while(readData) {
String inputLine = null;
try {
while((inputLine = m_inputStream.readLine()) != null) {
//do stuff
}
} catch (IOException e) {
readData = false;
}
}
}
Comment puis-je détecter que le serveur de socket est parti et terminer la boucle?
Donc le flux retournera NULL SEULEMENT si la connexion est fermée? – anio
Oui - sinon l'appel à la lecture bloquera jusqu'à ce qu'il y ait des données à lire –
La déclaration de m_inputStream n'est pas montrée, mais je suppose qu'il s'agit d'un java.io.BufferedReader. Si c'est le cas, il ne retournera que null si le socket est fermé. Si le serveur est tué brutalement, une "réinitialisation" devrait se produire au niveau TCP, ce qui entraînera une exception soulevée par Java Socket. – erickson