Vérifier la connection et le ping

Résolu
cs_gomoz Messages postés 134 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 23 décembre 2009 - 12 déc. 2004 à 22:25
cs_gomoz Messages postés 134 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 23 décembre 2009 - 21 juil. 2005 à 12:26
Voilà, je suis en train de terminer un programme client/serveur et je m'occuper actuellement de géréles erreur.

Mais problèmes sont :
1- Lorsque que je ne connect avec .Connect(EndPoint), si l'addresse n'est pas bonne il met beaucoup de temps a afficher une erreur. Je voudrais povoir faire un ping afin de vérifier la connection, est-ce que vous avez une idée ?

2- par ailleurs, si mon serveur se déconnecte, le programme client ne le sait pas et donc se bloque, il y a t il un moyen de tester la connection ?

> voilà (parmis tant d'autre) les questions que se pose un débutant.

Merci d'avance pour votre future aide,
[mailto:gomoz@free.fr Gomoz]

4 réponses

PierreCSharp63 Messages postés 7 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 26 mars 2008
21 juil. 2005 à 10:59
en cherchant une solution à min pb de timeout de connexion trop long,
je suis tombé sur ce mail. J'ai une solution, mais j'espèrais trouver
mieux.

Il faut faire un s.BeginConnect() sans s'occuper du restour de fonction
( et donc pas de endConnect()) puis faire une tempo ds une boucle (
pour ne pas attendre même si on est connecté ) en surveillant si on est
connecté. s.Connected.
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
13 déc. 2004 à 09:17
Salut,

Pour ta première question, je vais me pencher dessus, j'aurais bien besoin de cette solution aussi.
En fait, il y a bien

 this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);


Mais ca ne marche pas... :/

Pour la seconde question, du coté de mon serveur j'utilise un thread qui effectue toutes les X secondes ce controle :

if (s !null && s.Poll(5, SelectMode.SelectRead) && s.Available 0)

(s etant une instance de la classe Socket)

Ceci a pour effet de savoir quel client a été deconnecté "sauvagement" (plantage, etc).
Je pense donc que si tu implémente ceci du coté de ton client, il saura quand le serveur s'est fermé :)

Je te tiens au courant si je trouve une bonne solution a ta premiere question.

a++

MX
0
cs_gomoz Messages postés 134 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 23 décembre 2009
13 déc. 2004 à 23:19
merci déjà pour la deusième option, sinon c'est daccord, lorsqu'il y a une solution de trouvé pour la 1, on s'en fait part ;)

[mailto:gomoz@free.fr Gomoz]
0
cs_gomoz Messages postés 134 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 23 décembre 2009
21 juil. 2005 à 12:26
en effet pas bete.

[mailto:gomoz@free.fr Gomoz]
0