cs_salazar
Messages postés241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 2006
-
8 juin 2005 à 18:43
cs_salazar
Messages postés241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 2006
-
9 juin 2005 à 10:52
Pour accepter un client, le serveur doit faire Close puis Accept requestID.
Private Sub W_ConnectionRequest(ByVal requestID As Long)
W.Close
W.Accept requestID
End Sub
Une fois qu'on est connecté poste à poste (et non multi-chat), a t'on le droit de mettre le serveur en mode listen ? ou faut il rester en mode Close jusqu'à ce que le Client se déconnecté ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 juin 2005 à 23:45
Salut
Un Winsock est une prise de courant : Si tu as déjà un client de branché dessus, pas possible de lui faire faire autre chose. Donc oui, il faut 'closer' avant de pouvoir lui dire de se remettre en écoute (Listen), prêt à recevoir une nouvelle demande.
Si tu veux que ton serveur puisse répondre à plusieurs clients, il faut charger des composants Winsock en dynamique : Cherche parmi les sources et les messages du forum, ce sujet fait couler beaucoup de ... fontes.
En deux mots :
Client : rien ne change
Serveur : Un Winsock en écoute (WSE)
+ Un autre Winsock pour les réponses (WSR)
Lui mettre l'index 0 dans les propriétés
Dans WSE_ConnectionRequest, tu mets le code
Load WSR(1)
WSR(1).Accept RequestID
Bien sûr, le "1" utilisé en index doit être incrémenté à chaque création d'une nouvelle connexion
Le WSE reste en Listen, on ne touche pas à sont état, il n'est là que pour centraliser les appels, on fabrique un WSR pour chaque réponse.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 9 juin 2005 à 02:46
Quand le lcient se déconnecte il faut aussi faire .close avant le
nouveau .listen sinon tu aura une erreur possiblement. Dans le cas
d'acceptation multiple de client en dynamique tu n'as pas besoin de
faire close et listen si je me souviens bien.
@+
MSN : x_men_40@hotmail.com
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_salazar
Messages postés241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 20061 9 juin 2005 à 10:52
Je veux connecter que 2 PC entre eux .Je résume vos infos :
Le serveur doit faire un .close puis un .listen, jusqu'à ce que le client fasse la demande de connexion.
Dès que la demande est recue, le serveur fait un .close puis un .accept.
Pendant tout le temps de la connexion, le serveur reste en l'état sans faire de .close ni de .listen après le .accept.
Dès que le client se déconnecte, le serveur doit faire un .close puis un .listen, jusqu'à ce que le client fasse la demande de connexion.