cs_omega2
Messages postés28Date d'inscriptionlundi 18 août 2003StatutMembreDernière intervention15 novembre 2004
-
30 août 2004 à 23:20
cs_omega2
Messages postés28Date d'inscriptionlundi 18 août 2003StatutMembreDernière intervention15 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)
wargre
Messages postés649Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 9 septembre 20047 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.
cs_omega2
Messages postés28Date d'inscriptionlundi 18 août 2003StatutMembreDernière intervention15 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.