Détecté deconnection client

Résolu
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 21 févr. 2008 à 09:31
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 25 févr. 2008 à 15:07
Bonjour,
je travail avec deux threads
l'une à l'ecoute de nouveau client et l'une pour recevoir les datas des clients

Je n'arrive pas a détecter que un des mes clients ce déconnecte car LesClients(who).Socket.Connected reste toujours à False.

Pouvez-vous me dire pourquoi Connected reste toujours sur False et comment détecter proprement qu'un client est partit ?

Merci d'avance

6 réponses

narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
25 févr. 2008 à 15:07
voici la réponse à la MSDN adapté à mon cas :
<hr size="2" width="100%" />                'on regarde si il est toujours connecté
                Try
                    Dim tmp(0) As Byte
                    Dim blockingState As Boolean = LesClients(who).Socket.Blocking
                    LesClients(who).Socket.Blocking = False
                    LesClients(who).Socket.Send(tmp, 0, 0)
                    LesClients(who).Socket.Blocking = blockingState
                Catch e As SocketException
                    If Not e.NativeErrorCode.Equals(10035) Then
                        ListBox.Invoke(dlgDisplay, LesClients(who).Name + " est déconnecté")
                        LesClients.RemoveAt(who)
                        Exit For
                    End If
                End Try
<hr size="2" width="100%" />
Ca marche mais c'est loin d'etre simple quand même.

Merci à vous pour votre aide en tout cas.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 févr. 2008 à 13:15
Salut
Connait pas trop les sockets en .Net, mais n'y aurait-il pas un évènement .Close associé au Socket ?
(en référence à VB6)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
21 févr. 2008 à 13:20
Cette fonction demande la fermeture du socket. Il ne permet pas de détecter que le client a crasher par exemple
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
21 févr. 2008 à 15:52
En Vb6 avec winsock il y a :

If Winsock1(Index).State <> 7 Then ' Il est deconnecter

Je me demandait si il y à pas une fonction similaire en .NET ?

kakenette

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 févr. 2008 à 01:24
Ah bah oui, tu as raison kakenette, le State.
Ou avais-je la tête ...
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
25 févr. 2008 à 14:49
Il n'est pas présent dans le .Net

Je continue mes recherches
Rejoignez-nous