Bonjour,

Voici la situation : je me connecte successivement à différents serveurs via une socket UDP au travers d'une boucle afin de récupérer certaines informations. Cependant il se peut que dans certains serveurs ne soient pas en route. Est-il possible de définir un temps d'attente max pour la réception pour "esquiver" un tour de boucle et ainsi continuer à parcourir les serveurs tout en gardant les informations obtenues avant et après le passage par le serveur "éteint" ?

voici mon bout de code qui vous aidera sans doute à comprendre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//shop est la liste des serveurs
while (shop.hasNext())
			{
				String currentShop = shop.next() ;
				out.print("<form action='AdminManager'>Boutique " + currentShop);
				out.print("<input type='hidden' name='action' value='validate' />");
				out.print("<input type='hidden' name='port' value='"+ displayShops.gs.getPortCommande(currentShop) +"' />");
 
 
				DatagramPacket packet = new DatagramPacket(message,message.length,
				                                        new InetSocketAddress("localhost", displayShops.gs.getPortCommande(currentShop)));
 
//on demande au serveur de nous envoyer la liste
				socket.send(packet);
 
//on se prepare a recevoir
				byte[] reponse = new byte[1024] ; 
				packet = new DatagramPacket(reponse,reponse.length);
				try
		        {
					socket.receive(packet); 
		            doc = sxb.build(new ByteArrayInputStream(packet.getData(),packet.getOffset(),(packet.getOffset()+packet.getLength())%1024));
		            racine = doc.getRootElement();
					Iterator<Element> commandes = racine.getChildren("commande").iterator();
 
					while (commandes.hasNext())
					{
						Element current = commandes.next();
						out.print("\t<p><input type='checkbox' name='commande' value='" + current.getChildText("id") +"' /> Commande " + current.getChildText("id") + " " + current.getChildText("date") + "</p>");
					}
					out.print("<p><input type='submit' value='Valider' /></p></form>");	
		        } catch(JDOMException e){
		        	    System.err.println("Erreur lors de la lecture de la reponse du serveur: " + e);
		        	    System.exit(-1);
		        	} catch (IOException e) {
		        		System.err.println("(Reception Client) Erreur lors de la reception du message-reponse : " + e);
		        	    System.exit(-1);
		        	   }
		}
Merci d'avance pour votre aide.