[JAVA Socket] ou comment detecter qd un client s'est deconnecté?

ou comment detecter qd un client s'est deconnecté? [JAVA Socket] - Java - Programmation

Marsh Posté le 20-11-2004 à 12:41:27    

Bonjour.  
 
j'ai creer un serveur multiclient.  
Et j'aimerais savoir comment detecter qu'un client brutalement quitter la communication avec le serveur. (client planter, interruption de l'execution du client)
 
peut t'on voir ça au niveau du socket?
 
(j'ai essayer isConnected(), isBound(), toute methode renvoyant un booleen dans la classe socket ça n'a rien donne)
 
j'ai donc 2 solution, mais qui ne me safisfont pas.
 
la premiere c'est:  
 

Code :
  1. String str = in.readLine();
  2.         
  3.          if(str == null) break;


 
la deuxieme est de cacher tout les execptions au niveau du thread qui s'occupe de la communication avec le client.
 
mais niveau deboggage c plutot super moyen.
 
 
voila. donc si quelqu'un vait une piste ce serais vraiment bien.  
 
merci d'avance
 

Reply

Marsh Posté le 20-11-2004 à 12:41:27   

Reply

Marsh Posté le 20-11-2004 à 15:04:15    

Non, faut un mécanisme de Watchdog (ping / pong et estimer que le client s'est crashé s'il ne répond pas au ping dans un délai donné)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 20-11-2004 à 15:40:28    

un system de watchdog?  
va falloir que je me rensigne, merci.  
 
il y a une classe deja faite?  
 
c quoi le principe?  
 
merci :)

Reply

Marsh Posté le 21-11-2004 à 16:08:09    

Ton serveur envoie un message de type ping (le plus léger possible pour éviter une surcharge réseau). Tu configures ton client pour que, lorsq'il recoit un message de type ping, il renvoit un message de type pong au serveur (meme principe).  
 
Le serveur fermera la connexion après X secondes si il n'a pas recu un message du client. Ca résoudra ton problème.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-11-2004 à 18:48:31    

les timeout ça se fait tout seul en java nan ?
j'en ai fait yapa longtemps et j'y connais rien en réseau donc j'ai pas pu le sortir de mon chapeau (rouge)

Reply

Marsh Posté le 22-11-2004 à 19:26:43    

pour le moment j'ai pas mon client. je teste avec telnet.  
et j'aimerais dissocier le clients du server au max :)
 
mais je je peu envoyer un ping en java non?

Reply

Marsh Posté le 22-11-2004 à 20:06:08    

et en utilisant Bind?  
 
je chercher je cherche, mais je sais plus a quoi ça sert ^^ exactement
 

Reply

Marsh Posté le 22-11-2004 à 21:41:09    

ben si g compris ce qu'à dit dark, ton ping faut plus voir ca comme un message convenu entre le server et le client, auquel le client sait qu'il doit répondre...
 
je pense pas qu'il parlait d'ECHO REQUEST ICMP


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 23-11-2004 à 20:38:46    

Jubijub a écrit :

ben si g compris ce qu'à dit dark, ton ping faut plus voir ca comme un message convenu entre le server et le client, auquel le client sait qu'il doit répondre...


 
c'est exactement ça :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed