[JAVA] mettre en place un timeout pour l'écriture (write) sur socket

mettre en place un timeout pour l'écriture (write) sur socket [JAVA] - Java - Programmation

Marsh Posté le 11-04-2007 à 09:23:01    

Bonjour tout le monde,
je voulais savoir s'il est possible de spécifier un timeout  pour l'envoie des données par socket.
La méthode setSoTimeout sur http://java.sun.com/j2se/1.5.0/doc [...] ocket.html ne s'applique que pour les read et non pour les write.
Pour l'instant je crée un nouveau thread avant chaque écriture qui s'endort x ms et s'il n'est pas interrompu c'est qu'il y a timeout.
Personnelement, je trouve cette façon de coder pas terrible. Créer pleins de processus pour rien
Le serveur existant lui ne doit pas répondre, il ne fait que recevoir.
Je vous remercie si vous trouvez une solution à mon problème.
Cordialement,
 Kévin
 
ps dites le s'il vous faut le code que j'ai fait.
Merci d'avance ;-)


Message édité par kev_59 le 11-04-2007 à 09:24:02
Reply

Marsh Posté le 11-04-2007 à 09:23:01   

Reply

Marsh Posté le 24-08-2007 à 11:11:21    

ça marche en créant pleins de processus mais c'est pas une bonne solution
 

Code :
  1. while (true)
  2.   {
  3.     nb= dis.read (b); // read in the file nb char
  4.     if (nb <=0) {break;}
  5.     MyTimeOut myTimeOut=new MyTimeOut(socket, timeOut);
  6.     myTimeOut.start();
  7.     dos.write(b,0, nb);  // write in the socket
  8.     myTimeOut.interrupt(); // interrupt the thread
  9.   }


 

Code :
  1. public void run() {
  2.    try {
  3.     Thread.sleep(timeOut);
  4.     miseEnTrace("send timeout closing the socket" );
  5.     socket.close();
  6.     }
  7.    catch(InterruptedException e)  { }
  8.    }
  9.    }


Message édité par kev_59 le 24-08-2007 à 12:11:03
Reply

Sujets relatifs:

Leave a Replay

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