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 :
Merci d'avance pour votre aide.
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); } }
Partager