Winsock erreur 40006

Signaler
Messages postés
15
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 juillet 2007
-
Messages postés
2
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
3 juin 2008
-
Salut
J'essaie d'apprendre un peu comment fonctionne les winsock mais j'obtient un erreur lorsque je veux changer mon texte dans mon txtsenddata

voici mon code

Private Sub Form_Load()
   
    On Error Resume Next
    tcpServer.Close
    tcpServer.LocalPort = "6661"
    tcpServer.Listen
   
End Sub


Private Sub cmdConnect_Click()


    On Error Resume Next
    tcpServer.Close
    tcpServer.Connect tcpServer.LocalIP, "6661"


End Sub


Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
   
    tcpServer.Close
    tcpServer.Accept requestID


End Sub


Private Sub txtSendData_Change()


    tcpServer.SendData "test"
   
End Sub


Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
   
    Dim strData As String
    tcpServer.GetData strData
    txtOutput.Text = strData
   
End Sub


Private Sub tcpServer_Connect()
    MsgBox "Le Winsock est connecté"
End Sub

Je ne voit jamais le message "le winsock est connecté" donc jimagine quil y a un probleme au niveau de la connection, mais je ne sais pas ca serait quoi.

Merci ;)

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
"...   tcpServer.Connect tcpServer.LocalIP, "6661"..."
Tu essaye de nous faire quoi là?? du loopback ??? marche pas comme ça

Le controle Winsock ne peut etre que client ou que serveur, il ne peut etre les deux à la fois, il ne peut pas se connecter sur lui même.
Pour faire un loopback, il te faut un winsock comme serveur, c'est à dire en écoute sur un port comme tu as fait dans le form load.
Il te faut un second winsock avec lequel tu va ouvrir la connection. Ce second controle tu lui donnera comme adresse DISTANTE, l'adresse de ton PC (celle du premier winsock) ou l'adresse générique du loopback qui est 127.0.0.1. Comme port DISTANT tu va lui donner le port d'écoute du premier controle.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,
exact casy.

j'ajouterai qu'en tapant "40006" dans l'aide, magie.... :

sckBadState, 40006, État du protocole ou de la connexion incorrect pour la
transaction ou la demande requises.

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
2
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
3 juin 2008

Cette erreur, pour mon cas, été suite à une fermeture intempestive du winsock (je ne sais encore pas pourquoi il se ferme tout seul). j'ai resolu le problème en testant sur l'etat du winsock. si je trouve son etat egal à 0 (déconnecté) je reconnecte (avec envoi de l'utilisateur et mot de passe mail) et j'exécute les instructions que je voulais initialement effectuer... et ca marche comme sur des roulettesssssss.
if winsock1.state = 0 then
    call connecter_winsock 'par exemple