Bonjour,

Développant une application d'envoi de paramètres par connexion Telnet.

Avant l'envoi de données je vérifie que l'équipement est bien connecté.
Comme le nombre d'IP à vérifier n'est jamais le même, j'utilisate les threads afin de les faires en paralleles.

j'utilise le code suivant :

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
import java.net.InetAddress;
import java.net.*;
import java.util.ArrayList;
 
class threadping 
{
	threadping()
	{
		ArrayList<testip> maliste = new ArrayList<testip>();
		maliste.add(new testip ("192.168.1.100")); //ok
		maliste.add(new testip ("192.168.1.200")); //erreur
		maliste.add(new testip ("192.168.1.240")); //ok
		maliste.add(new testip ("192.168.1.8"));    //erreur
 
		for (testip tp : maliste)
		{
			tp.start() ;
		}
 
		try
		{
			for( testip tp : maliste)
			{
				tp.join() ;
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
class testip extends Thread
{
	private boolean pingOK = false ;
	int tpsTimeOut = 2000;
 
	public testip(String nom)
	{
		try
		{		
			InetAddress i = InetAddress.getByName(nom);
			pingOK = i.isReachable(tpsTimeOut);
			if(pingOK)
			{
				System.out.println(" => OK");
			}
			else
			{
				System.out.println(" => ECHEC !!!");
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
 
 
public class essai
{
	public static void main (String[] args)
	{
		threadping moi = new threadping();
	}
}
Mon soucis c'est que le test sur ces 4 ip dure 6s. Je ne comprends pas pourquoi le test est si long, cela est surement du à une mauvaise utilisation des threads.

De plus puis je ajouter dynamiquements des éléments dans l'arraylist.


Merci de votre aide