warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009
-
23 janv. 2006 à 19:53
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
1 févr. 2006 à 23:41
Yop
je cherche a me faire un scanner pour mon reseau (probleme de routeur)
et plutot que d'en prendre un tout fait j'ai voulu me faire le mien ^^
donc voila j'ai un probleme
j'ai ce code:
for (int i = portdeb; i < portfin; i++)
{
TcpClient tcpclient = new TcpClient(tbip.Text, i);
if (tcpclient.Connected)
{
NetworkStream ns = tcpclient.GetStream();
byte[] bytes = new byte[tcpclient.ReceiveBufferSize];
ns.Read(bytes, 0, (int)tcpclient.ReceiveBufferSize);
string reponse = Encoding.UTF8.GetString(bytes);
row.Add(i.ToString(), reponse);
}
tcpclient.Close();
}
le probleme est que quand un port est fermé je leve une exception... :(
comment faire pour eviter ça? je veux que lorsque le port est fermé il ne se passe rien et ça passe au port suivant...
donc soit je leve les exception et je les jete, soit je fais autrement
la premiere solution me plait guere car trop lente... (je voudrai qu'il s'ecoule que 3 secondes avant qu'il passe a un autre port...)
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 1 févr. 2006 à 23:41
Salut,
Le try-catch pas propre ?!?!
Le temps d'attente n'a rien à voir avec la gestion d'exception, ça dépend de la manière dont la machine cible gère les demandes sur ports fermés :
- soit elle répond que l'accès au port est refusé, auquel cas l'échec est rapide.
- soit elle se contente d'ignorer la demande et ne répond pas, auquel cas tu attend jusqu'à arriver au délai de timeout.
warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009 24 janv. 2006 à 19:15
oui mais je veux eviter ça
pour deux raisons: ça me semble pas super "propre" et seconde raison, je veux que ça evite d'attendre une reponse de l'ordi distant pendant trop longtemp
avec cette methode ça attend une 10e de secondes voir plus avant de lever l'exception... je veux pouvoir faire en sorte a ce que ça n'attende que 5 secondes par exemple ou meme 3