Client/serveur, comment réinitialiser les connexions
DavidT
Messages postés43Date d'inscriptionlundi 31 décembre 2001StatutMembreDernière intervention 5 février 2005
-
5 janv. 2002 à 05:30
cs_Repie
Messages postés103Date d'inscriptionmardi 10 octobre 2000StatutMembreDerniè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
A voir également:
Client/serveur, comment réinitialiser les connexions