Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1783 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  printwriter et socket detecter deconnection

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

printwriter et socket detecter deconnection

n°1098368
kenumdrum
ARM THE HOMELESS
Posté le 26-05-2005 à 17:00:52  profilanswer
 

Bonjour,
Je suis entrain de travailler sur une application qui utilise des sockets TCP.
D'un cote j'ai un client qui fait des envois de messages et donc le serveur lui s'occupe de les recevoir.
Le probleme est que lorsque je debranche le cable reseau l'application cliente continue d'envoyer des messages. je teste donc socket.isConnected(), socket.isClose(), socket.isBound ... mais leur etat ne change pas je ne peux donc pas savoir que le cable n'est plus connectee. De plus je n'est pas d'exception quand je fait : socket.getOutputStream().
Ma question est donc comment savoir que l'envoi ne peut pas etre realise et que le cable n'est plus branche.
 
voila le code ou je realise l'envoi des messages :

Code :
  1. public void send2Serial(String message)
  2. {
  3.  System.err.println("Send : "+message);
  4.  System.err.println("Input : "+this.socket.isInputShutdown());
  5.  System.err.println("Output : "+this.socket.isOutputShutdown());
  6.  System.err.println("Connect : "+this.socket.isConnected());
  7.  System.err.println("Close : "+this.socket.isClosed());
  8.  System.err.println("Bound : "+this.socket.isBound());
  9.  try{
  10.   PrintWriter writ = new PrintWriter(new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream())),true);
  11.   writ.println(message);
  12.  }
  13.  catch(IOException ioe)
  14.  {
  15.   System.err.println("Erreur d'ecriture!" + ioe.toString());
  16.   this.testAndReconnect();
  17.  }
  18.  System.err.println("Send OK : "+message);
  19. }


 
Merci d'avance pour votre aide.


Message édité par kenumdrum le 27-05-2005 à 09:58:07
mood
Publicité
Posté le 26-05-2005 à 17:00:52  profilanswer
 

n°1099199
kenumdrum
ARM THE HOMELESS
Posté le 27-05-2005 à 10:47:28  profilanswer
 

j'ai trouve ca en cherchant sur le net :
 
Vous pouvez utiliser la méthode isReachable(int timeout) de la classe InnetAdress qui indique si l'adresse est accessible. Les implémentation de cette méthode utilisent en général ICMP. En cas de problèmes d'accès ICMP, la méthode tente une connexion TCP sur le port 7 (echo).
 
merci developpez.com
 
le truc c'est que ca me donne l'etat de la connection mais pas l'etat de la socket.
 
donc si vous avez des idees.
merci d'avance
A+

n°1099610
kenumdrum
ARM THE HOMELESS
Posté le 27-05-2005 à 14:49:21  profilanswer
 

Solution pour detecter la rupture de la socket a l'envoi ne pas passer par printwriter ou autre stream, mais directement en recuperant le OutputStream de la Socket et envoyer les donnees en byte.
 

Code :
  1. try{
  2.   //recupere l'OutputStream
  3.   OutputStream os =  this.socket.getOutputStream();
  4.   //convertie la chaine en tableau de byte et l'envoi    
  5.   os.write(message.getBytes());
  6.  }
  7.  catch(IOException ioe)
  8.  {
  9.   System.err.println("Erreur d'ecriture!" + ioe.toString());
  10.   this.testAndReconnect();
  11.  }


 
A+

n°1748736
hatemSfaxi
Posté le 19-06-2008 à 10:09:31  profilanswer
 

bon j'ai travaillé sur ces problèmes.
pour la solution qui je trouvé et ca marche bien celle de faire un thread d'emission(avec boucle infinie) qui envoie n'importe qoi et de l'autre coté un autre threa reception
dans le bloc catch vous étes bien sur un état de déconnexion puisque l'inputstrem et l'outputstream non reconnu.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  printwriter et socket detecter deconnection

 

Sujets relatifs
Comment detecter une case cochée en dans une page JSPSocket (méthode BeginReceive)
[Java.io]Buffered Reader sur socket + ReadLine()[Java] Pb avec un PrintWriter.print() ?
jRadioButton JComboBox detecter si cocherDesign de serveur de socket
[Socket] java.net.SocketException: Too many open files[MySql] Detecter des doublons.
[TCL] Utilisation de socket en TCL : HELP ! ! ![C]Socket IRc
Plus de sujets relatifs à : printwriter et socket detecter deconnection


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR