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

Priato 2 Messages postés jeudi 7 juillet 2005Date d'inscription 20 juillet 2005 Dernière intervention - 20 juil. 2005 à 10:40 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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

Priato 2 Messages postés jeudi 7 juillet 2005Date d'inscription 20 juillet 2005 Dernière intervention - 20 juil. 2005 à 13:21
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 20 juil. 2005 à 12:04
0
Utile
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 20 juil. 2005 à 14:01
0
Utile
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.