Winsock et temps de connexion

Résolu
ltvian Messages postés 14 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 décembre 2004 - 27 oct. 2004 à 16:08
ltvian Messages postés 14 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 décembre 2004 - 28 oct. 2004 à 10:28
salut a tous ,

voila je travaille sur 2 applis avec winsock , mon client cherche le serveur et se connecte à celui-ci s'il est présent , mon serveur reçoit la requête de connexion , attribue un socket au client , récupère l'ip du client par la même occasion.
ça ça marche nickel , par contre , je voudrai ke mon client balance son nom d'ordi un fois connecté afin ke le serveur associe ip/nom d'ordi , en ce ki concerne la récup du nom d'ordi , pas de blème je passe par l'API getcomputername , par contre , j'aimerai savoir combien de temps approximativement je dois laisser au client pour se connecter avant de balancer mon info , passke si je mets dans le form load :

tcpclient.connect
tcpclient.senddata machaine

hé ben le client m'envoie balader passke le délai est trop court!

d'avance merci

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 oct. 2004 à 18:31
Salut ltvian
C'est parce que tu brules les étapes : Winsock s'adresse à la carte ethernet de ton PC, donc il faut lui laisser le temps de se connecter.
Avant de faire quoique ce soit après le .Connect, il faut attendre :
tcpClient.Connect
DoEvents
Do While tcpClient.State = sckConnecting
DoEvents
Loop
On va reboucler tant que le winsock est dans l'état 'Connecting'. Quand il aura changé d'état, il faudra ensuite tester dans quel état est la comm :
If tcpClient.State <> sckConnected Then
' Connexion en défaut ou autre
MsgBox "Problème de connexion"
tcpClient.Close
Else
' On est connecté : On peut envoyer ce qu'on veut
tcpClient.SendData MaChaine
End If

Vala
Jack
3
ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005
27 oct. 2004 à 20:12
ou bien:
Private Sub Sock_Connect()
Sock.SendData tachaine
End Sub
3
ltvian Messages postés 14 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 décembre 2004
28 oct. 2004 à 10:28
merci à vous , ces deux méthodes me serviront grandement , là dessus , je dirai ke g trouvé une autre solution afin de récupérer le computername du client ki vient de se connecter , en effet j'utilise le DNSFinder.dll , ça marche impec et ça m'évite de trop encombrer le source de l'appli client .

merci à vous
0
Rejoignez-nous