Sockets : Questions diverses

Résolu
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008 - 26 oct. 2008 à 13:57
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008 - 28 oct. 2008 à 17:44
Bonjour :)

Je cherche un moyen de vérifier si un socket est encore connecté ( si le client a crashé ou non ).

Merci d'avance :)

5 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
26 oct. 2008 à 15:46
Bonjour,

Essaye d'envoyer des données, si le client est déconnecté, tu le saura rapidement.

http://nhen0039.chez-alice.fr/index.php
3
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008
26 oct. 2008 à 21:01
N'y aurait-il pas une solution plus propre ? Je ne souhaite pas envoyer un packet pour tester ça... ( économie de bande passante... )

En vb6 ce serais tout simple :

If Socket.State = sckConnected Then
'Connecté
 Else
'déConnecté
End if
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
26 oct. 2008 à 22:24
Bonjour,

Oui, mais de ce que je connais, il ne passera dans l'état déconnecté que si il y a une tentative d'activité sur la liaison.

http://nhen0039.chez-alice.fr/index.php
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 oct. 2008 à 22:48
salut,

en VB6 le winsock retournait un état (.State)

il est probable que les classes DotNet disposent aussi de ce genre de propriétés ou méthodes

tape juste le nom de la classe (du framework) dans le moteur MSDN et tu auras la réponse de suite (si tu veux t'éviter juste de presser F2)

++

<hr size="2" width="100%" />

[forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx Un petit sondage]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
calimero63110 Messages postés 33 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 14 décembre 2008
28 oct. 2008 à 17:44
La solution trouvée :

reallyReceivedBytes = LaSocket.Receive(octetsRecus)

                'Si on ne recoit réellement rien                If Not LaSocket.Connected Or (LaSocket.Available 0 And reallyReceivedBytes 0) Then
'Traitement

Else
'Client déconnecté
End If
0
Rejoignez-nous