Verifier qu'un server est toujours vivant (ping maison)

cs_Myron Messages postés 10 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 25 février 2008 - 25 févr. 2008 à 04:36
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 26 févr. 2008 à 09:18
Bonjour !

Voila, je vous explique mon probleme :

J'ai fait un systeme de client <-> server en connexion inversée, les serveurs se connectent donc au client qui les liste dans un tableau.
Tout fonctionne bien (ajout a nouvelle connection, suppression dans le tableau quand un server s'arrete proprement).

Seulement les serveurs ne sont plus pas supprimés si le processus n'est pas proprement arrété (si on le kill par exemple) il reste dans le tableau comme s'il etais encore en fonction alors qu'il a été killé. Ce que j'aimerais faire c'est faire un systeme de ping intégré a l'application en ajoutant la colonne dans le tableau et en faisant envoyé au client "ping" et faire repondre le server "pong" en calculant la vitesse de reponse et si le server ne reponds pas le fameux "pong" au bout de 30 secondes, on le vire de la liste.

Seulement je n'ai aucune idée de comment créer ca (utiliser un timer ... ect ....) Je voudrais avoir vos conseils éclairés sur comment m'y prendre !

Merci d'avance !!

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 févr. 2008 à 08:38
"J'ai fait un systeme de client <-> server en connexion inversée, les serveurs se connectent donc au client qui les liste dans un tableau."

euh...

celui qui attend la connexion c'est le serveur
celui qui se connecte, c'est le client...

point barre.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 févr. 2008 à 08:39
si tu le killes, tu n'as pas de _Close de Winsock ?
cs_Myron Messages postés 10 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 25 février 2008
25 févr. 2008 à 15:27
Oui, désolé pour l'inversion.

Non, effectivement si on kille le processus le winsock_close ne s'effectue pas car il est arrété de facon incontrolée donc il ne se passe absolument rien :/

Il faut donc faire un timer qui controle avec un systeme ping intégré. 
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 févr. 2008 à 09:18
Rien de complexe pour ce systeme de Ping:



Private Sub
Timer1_Timer()
   If Winsock1.State <> sckConnected Then
       MsgBox "fermeture"
       Winsock1.Close
   End If
End Sub ,

----

By Renfield








Renfield





Admin CodeS-SourceS

- MVP Visual Basic
Rejoignez-nous