Recommencer un try tant que le catch s'active

Recommencer un try tant que le catch s'active - Java - Programmation

Marsh Posté le 08-03-2003 à 18:44:54    

bonjour,
 
j'ai cherché dans les threads existant et j'ai pas trouvé.
 
Donc admettons que j'ai ca :
 

Code :
  1. try
  2. {
  3.        ServerSocket s = new ServerSocket(intPort); //contient le Bind
  4. }
  5. catch (BindException e)
  6. {
  7. e.printStackTrace();
  8.         //intPort++;
  9. }


 
Je voudrais qu'apres le "e.printStackTrace()" du catch, ca fasse un "intPort++" et que ca recommence le traitement (donc retourner dans le try).
 
C'est possible de faire ca proprement ?

Reply

Marsh Posté le 08-03-2003 à 18:44:54   

Reply

Marsh Posté le 08-03-2003 à 18:49:50    

Code :
  1. accomplished = false;
  2. while (!accomplished) {
  3.     try
  4.     {
  5.        ServerSocket s = new ServerSocket(intPort); //contient le Bind
  6.        accomplished = true;
  7.     }
  8.     catch (BindException e)
  9.     {
  10.         intPort++;
  11.     }
  12. }


Message édité par kadreg le 08-03-2003 à 18:50:16

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 08-03-2003 à 18:57:40    

kadreg a écrit :

Code :
  1. accomplished = false;
  2. while (!accomplished) {
  3.     try
  4.     {
  5.        ServerSocket s = new ServerSocket(intPort); //contient le Bind
  6.        accomplished = true;
  7.     }
  8.     catch (BindException e)
  9.     {
  10.         intPort++;
  11.     }
  12. }




 
j'y avais pensé, mais je pensais qu'il y avait une fonction spéciale pour ce genre de truc, parce que c'est très con la... enfin ca marche, merci  :jap:

Reply

Marsh Posté le 08-03-2003 à 18:59:38    

tu sais que si tu fais ServerSocket(0) ca prendra le premier port libre?

Reply

Marsh Posté le 08-03-2003 à 19:04:45    

++Taz a écrit :

tu sais que si tu fais ServerSocket(0) ca prendra le premier port libre?


 
non je ne savais pas, mais de toutes facons les premiers ports sont reservés par le systeme (je ne suis pas sous windows, ni sous linux). Et je dois commencer au 20000.
 
Merci  :jap:

Reply

Marsh Posté le 08-03-2003 à 19:13:13    

quand je dis le premier libre, je veux dire le premier utilisable. t'inquiète, ca te donnera un port valide (si sur ton systeme, c'est >20000, ca tedonnera un port valide)
 
pour avoir le port du SocketSever tu getLocalPort() et getInetAddress()
 
apres tout est là
 
http://java.sun.com/j2se/1.4.1/doc [...] ocket.html

Reply

Marsh Posté le 08-03-2003 à 19:18:11    

en plus je suis sour la 1.2.2, pas la 1.4 alors bon.
 
Enfin bon merci, ca marche bien comme ca.

Reply

Sujets relatifs:

Leave a Replay

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