Bonjour,
Je suis en train de faire une petite application réseau utilisant uniquement des connexions TCP. J'ai donc deux flux (un in et out) via le socket qui me permette de dialoguer avec une machine distante. Toutefois, je m'étonne qu'on puisse écrire sur ces flux, sans que cette écriture puisse génerer une exception. Pour écrire quelque chose à un ordi distant par exemple, j'utilise un PrintWriter. Or, il se peut très bien que (et j'en ai fais le test) après une connexion réussie au serveur, le serveur coupe la connexion (de manière tout à fait propre, je ferme les sockets explicitement donc en théorie, le client est bel et bien prévenu de la fermeture), le client ne se rende compte strictement de rien. Ecrire sur le flux de sortie du socket ne pose aucun problème alors que celui ci n'est plus raccordé à rien! Je pensais que Java utiliserait le mécanisme des exceptions pour signaler que la connexion était morte, mais non! Ma question est donc, comment puis-je savoir du côté client par exemple, que le serveur vient de fermer la connexion et que donc, je dois abandonner le dialogue?
Partager