Régler le timeout de déconnexion des sockets [java] - Java - Programmation
Marsh Posté le 30-03-2004 à 22:55:55
electricblue a écrit : Je dispose d'une appli client/serveur en java, qui utilise les sockets pr les connexions. Jusque là tt va bien, la communication se fait bien. |
C'est TCP qui gère ça normalement.
Marsh Posté le 30-03-2004 à 23:08:32
nraynaud a écrit : C'est TCP qui gère ça normalement. |
Donc pas possible de le faire directement depuis java??
Marsh Posté le 31-03-2004 à 00:20:50
http://java.sun.com/j2se/1.4.2/doc [...] meout(int) ?
Marsh Posté le 31-03-2004 à 00:27:29
ouais mais là on sait pas si la socket est encore valide ou non ...
Marsh Posté le 31-03-2004 à 00:43:18
euh ouais je suis pas sur qu'il y ait une diff. entre ça et ce qu'il veut
Marsh Posté le 31-03-2004 à 02:29:54
setSoTimeout convient pas ds mon cas (je l'ai dit ds mon 1er post), ça met un timeout uniquement sur la réception (read). Moi je voudrais un timeout sur l'existance de la socket (erreur java.net.SocketException: Connection timed out).
Marsh Posté le 31-03-2004 à 07:52:13
Code :
|
Marsh Posté le 31-03-2004 à 09:44:11
c'est pas tres propre mais ca doit marcher
tu pourrais améliorer en remplacant le thread par une classe qui implemente Runnable contenant le boolean echangeOk
Marsh Posté le 31-03-2004 à 16:44:15
LAs3R a écrit : c'est pas tres propre mais ca doit marcher |
Merci pr ta réponse. Ms je ne pense pas qu'elle puisse marcher ds mon cas: le client peut très bien ne rien envoyer comme données tout en étant connecté.
Voilà une version simplifiée de mon client:
Code :
|
Marsh Posté le 31-03-2004 à 21:59:25
perso, pour les connex tcp, je teste juste la valeur de retour de InputStream.read()
-1 => deconnexion
Marsh Posté le 30-03-2004 à 22:02:31
Je dispose d'une appli client/serveur en java, qui utilise les sockets pr les connexions. Jusque là tt va bien, la communication se fait bien.
Par contre en cas de déconnexion du client, par exemple si on enlève le cable réseau, le serveur met plus de 10 minutes à remarquer que le client s'est déconnecté.
Comment régler le timeout de la déconnexion, ds les options des sockets ya que le timeout de la lecture (read) qui peut être paramètrer. J'ai pensé à un mécanisme de ping-pong, ms seulement en dernier recours.
Merci d'avance.
Message édité par electricblue le 30-03-2004 à 22:02:56