Client/serveur, comment réinitialiser les connexions

DavidT Messages postés 43 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 5 février 2005 - 5 janv. 2002 à 05:30
cs_Repie Messages postés 103 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 5 mars 2006 - 8 janv. 2002 à 17:40
J'ai créé 1 winsock1 pour processus.
L'un est le client et écoute sur le port 30000
le thème de mon programme est de créé une application permettant d'écouter tout le temps sur ce port et accepter des ordres pour une application particulière et intranet par la socket.
ces ordres peuvent être un close d'un process,
une copie de fichiers spécifiques
la seconde application est considérée comme une console qui envoie les commandes aux différentes machines qui héberge la première application et qui écoutent sur le port 30000
Jusque là tout va bien, la console envoie des ordres, reçois les réponses sur le même port.
Le problème est lorsque la console envoie l'odre de fermeture de la connexion :

elle effectue un Winsock1.SendData "STOP_X"
le client reçoit la variable STOP_X

Dans le insock1_DataArrival du client :
If data = "STOP_X" Then
Winsock1.SendData "STOP_Y"
Winsock1.Close

hors la console attend le STOP_Y pour effectuer :
If data = "STOP_Y" Then
Winsock1.Close
Label1.Caption = "Stopping the connexion"

Mais le STOP_Y n'est jamais envoyé à la console par le client.
Donc la console ne stoppe pas sa connexion et se locke.

J'ai remarqué que si je retire Winsock1.Close du client... le STOP_Y est alors envoyé à la console et celle-ci quitte sa session..???
J'ai essayé de faire une pause sur le client :
If data = "STOP_X" Then
pause 5000
Winsock1.SendData "STOP_Y"
pause 5000
Winsock1.Close

Mais rien y fait, le STOP_Y n'est jamais envoyé... que faire ?
Merci et Best regards

1 réponse

cs_Repie Messages postés 103 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 5 mars 2006
8 janv. 2002 à 17:40
Essaye avec un DoEvents à la place de pause 5000
0
Rejoignez-nous