VB_Winsock: 1 serveur , x Clients [Résolu]

Messages postés
2
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
20 juillet 2005
- - Dernière réponse : PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
- 20 juil. 2005 à 14:01
J'utilise Winsock sous VB6, j'ais crée un serveur et un client mais je
cherche a gérer plusieurs clients sur ce serveur. J'ais regardé sur
plusieurs code sources, en principe on utilise un index comme pour un
tableau or quand je le passe en parametre un message d'erreur
m'indique: " La déclaration de la procédure ne correspond pas à la
description de l'évenement..."

Voici mon code source du serveur:

Option Explicit



Private Sub BResetListe_Click()

'On efface la liste

Liste.Clear

End Sub



Private Sub Form_Load()

Sock.Close

'On défini au chargement de la feuille un port d'écoute

Sock.LocalPort = 180

'Et on écoute

Sock.Listen

End Sub



Private Sub Sock_Close()

'Quand un client se déconnecte on ferme proprement le Sock

Sock.Close

'On affiche dans la liste la déco d'un client

Liste.AddItem "Client déconnecté"

'Et on remet en écoute

Sock.Listen

End Sub



Private Sub Sock_ConnectionRequest(ByVal requestID As Long)

Sock.Close

'On affiche dans la liste un message pour bien prendre en compte la connection

Liste.AddItem "Connection client"

Sock.Accept requestID

End Sub
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
2
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
20 juillet 2005
3
Merci
J'ai trouvé mon problème il s'agissait de pouvoir instancier mon
Winsock et de pouvoir l'indexer, or pour cela il faut initialiser
l'index du winsock à 0 pour pouvoir l'utiliser par la suite dans les
procédures. Mon programme fonctionne, n'hésitez a apporter des
critiques si vous en avez, je suis en formation et donc je le prendrais
bien, merci à toi pcpt de t'être penché sur ma question.

voici le code coté serveur:



Option Explicit

Dim indexSock As Integer



Private Sub Form_Load()

Sock(indexSock).Close

'On défini au chargement de la feuille un port d'écoute

Sock(indexSock).LocalPort = 180

'Et on écoute

Sock(indexSock).Listen

End Sub



Private Sub Sock_Close(index As Integer)

'Quand un client se déconnecte on ferme proprement le Sock

Sock(index).Close

'On décharge le socket

Unload Sock(index)

'On affiche dans la liste la déco d'un client

Liste.AddItem "Client " & index & " déconnecté"

End Sub



Private Sub Sock_ConnectionRequest(index As Integer, ByVal requestID As Long)

indexSock = indexSock + 1

Load Sock(indexSock)

'On affiche dans la liste un message pour bien prendre en compte la connection

Liste.AddItem "Connection client " & indexSock

Sock(indexSock).Accept requestID

End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
31
0
Merci
tel quel, tu n'autorises pas plusieurs clients
ensuite, il est possible que ton port 180 soit déjà utilisé.

et le message "La déclaration de la procédure ne correspond pas à la description de l'évenement..."
doit concerner un autre problème non-lié
par exemple
Private Sub Command1_Click(Button)

ton erreur est celle d'un procédure d'un composant qui aurait été modifié.

PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
31
0
Merci
n'oublie pas de fermer le nouveau sock avant ;)

Sock(indexSock).Close
Sock(indexSock).Accept requestID

PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.