VB/VB.Net Détecter la déconnexion d'un client socket vb.net

Inscrit
5 Juin 2011
Messages
16
Reactions
0
#1
Bonsoir,

J'ai fait des recherche afin de Détecter la déconnexion d'un client socket vb.net met après plusieurs centaine de tests je suis toujours au point 0 Donc j'ai vraiment besoin de votre aide merci bien.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#2
je vais faire des recherche je tient au Courant par la suite
 
Inscrit
5 Juin 2011
Messages
16
Reactions
0
#3
Merci Bien mes perso j'ai rien trouver :/
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#4
moi aussi je ne trouve pas.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#6
tien.

reprenons les source de Overedge

Code:
tu retrouve sa
 Sub Ecoute_Jeu()
        While _socket_Jeu.Connected ' boucle infinie tant que connecté
            Dim i = _socket_Jeu.Receive(buffer) ' on met dans i le nombre d'octets recu
            Dim data(i - 1) As Byte
            Try
                Array.Copy(buffer, Data, i) ' on copie buffer dans data
                parsing(Data) ' on lance le parsing
            Catch
            End Try
         
        End While

    End Sub
'While _socket_Jeu.Connected ' boucle infinie tant que connecté
Nous on veux s'avoir si il est pas connecter tout simple.
si buffer nous renvoi 0 c'est a dire qu'il envoi 0 octets <== donc deconnecter il va falloir rajoute un if dans le while.

sa va donner sa :

Code:
 If i = "0" Then < === i =   i le nombre d'octets recu si =  a 0 on fait sa
                Chat.Invoke(Chater, Chr(13) & "[" & toto & "]" & "#####La connexion a été Fermer.")
            End If
mais si on fait juste sa il va boucler l'action donc maintenant faut deconnecter le _socket_Jeu
on rajoute sa et la boucle ne va pu se faire vue que le while a pour condition _socket_Jeu.Connected alors que la le thread et Abord sa va donner sa a la fin

Code:
 If i = "0" Then
                Chat.Invoke(Chater, Chr(13) & "[" & toto & "]" & "#####La connexion a été Fermer.")
                Ecoute_Jeu_thread.Abort()
            End If
je pense sa doit marcher.

Cadernis apprenons tous ensemble.
 
A

Anonymous

Invité
#7
Et ensuite si on le reconnecte après une déconection sa marcheras ?
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#8
ouii Overedge

c'est pas le socket que je kill son thread.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#10
Overedge tu fait partie des la partie privé ?
 
A

Anonymous

Invité
#11
Oui comme tu peut le voirs tout les membres bleu en font partie puis avec 800 messages ;) si t'appelle pas ça actifs :)

Sinon le code marche ou pas?
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#13
sinon c'est deja un peu prevu :
Code:
While _socket_Jeu.Connected ' boucle infinie tant que connecté <-------------------
sous entendu si c'est plus connecté alors ca sort de la boucle
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#14
ToOnS ouii je sais ;) LulsKiller mais Résolue merci pour les nouveau ou autre.
 
A

Anonymous

Invité
#16
Je n'ai jamais compris à quoi sert la variable "Connected" de la classes Socket. Personellement, je n'ai jamais vriament réussi à m'en servir consistament. Pour détecter un socket déconnecter, il faut que bytesRead == 0.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#17
Mikedotnet c'est ce que j'ai fait comme le socket Ecoute_jeu truk du genre While a pour condition _socket_Jeu.Connected <=== logique si il est pas connecter ben il ne le boucle pu mais quand il est deco le _socket_Jeu est toujour connecter mais le bytes renvoi une valeur == 0 donc je rajoute un if i = 0 then il envoi un message comme quoi connections fermé puis il close _socket_Jeu.Abord() <== des que le socket en Abord il le boucle pu :) voila mini explication Mikedotnet j'espère ta compris.
 
A

Anonymous

Invité
#18
Pour détecter la déconnexion d'une socket, c'est pas super compliqué.
Normalement il y a un thread qui se charge de recevoir les données en boucle. S'il rencontre une erreur, et qu'il ne peut plus lire les données, c'est qu'il est déconnecté.

Pour ça, un simple try/catch par dessus les read est suffisant.
 
Haut Bas