salut,
je suis entrain de faire une classe qui me permet de lister les machines sur mon réseau local
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 public class reseauthreadé extends Thread { String host; int timeOut; String resul; public reseauthreadé(String a,int b) { this.host=a; this.timeOut=b; } @Override public void run() { try { boolean status = InetAddress.getByName(host).isReachable(timeOut); if (status == true) { // System.out.println(host); this.resul=host; } } catch (IOException ex) { Logger.getLogger(reseauthreadé.class.getName()).log(Level.SEVERE, null, ex); } } public String get_resul(){return this.resul;} }
et dans le main j'ai fait une boucle qui crée à chaque fois un thread et récupére la valeur de get_resul()
le problème est que je doit faire un sleep après la création de chaque thread sinon j'appelle get_resul avant que mon thread termine son execution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 for(int i = 1; i <= 255; i++) { reseauthreadé m = new reseauthreadé("192.168.1." + i, 500); m.start(); reseauthreadé.sleep(100); if (m.get_resul() != null) { System.out.println(m.get_resul()); } }
comment résoudre ce problème car je gagne rien (en terme de temps) avec ce sleep
merci d'avance
Partager