ServeurSocket et déconection

cs_omega2 Messages postés 28 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 15 novembre 2004 - 30 août 2004 à 23:20
cs_omega2 Messages postés 28 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 15 novembre 2004 - 31 août 2004 à 17:01
Comment est ce qu'on peut bien détecter la déconecter d'un client?

Au vu de mes tests :

- un client se rends bien compte quand le serveur coupe la liaison (ca provoque une erreur "java.net.SocketException: Connection reset" )

- par contre même quand le client se barre proprement (fonction close() de la variable de type "Socket") le serveur se rend compte de rien.
isClosed() vaut toujours false
isConnected() vaut toujours true
isInputShutdown() vaut toujours false
isOutputShutdown() vaut toujours false

Comment je peux faire pour que le serveur se rende compte de la rupture de liaison ? (qu'elle que soit la raison)

2 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
31 août 2004 à 10:37
normalement, tu peux detecter la deconnection en essayant de lire la socket. read(byte[]) ne doit pas bloquer et te renvoyer -1 ou 0 enfin javadoc quoi.
0
cs_omega2 Messages postés 28 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 15 novembre 2004
31 août 2004 à 17:01
Super, ca marche. :)
J'avais mal lu la doc, je pensais que ca renvoyais -1 dés qu'il n'y avait rien à lire dans le pipe. (aprés un temps d'attente si temps d'attente réglé)

J'avais testé cette solution là mais n'ayant pas bien compris la page de la doc, je m'était planté dans le test de fin d'attente.
0
Rejoignez-nous