Winsock erreur 40006

tiguy21 Messages postés 15 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 22 juillet 2007 - 19 nov. 2006 à 05:04
cs_mahrouch Messages postés 2 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 3 juin 2008 - 3 juin 2008 à 23:43
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 nov. 2006 à 11:18
"...   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 #
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2006 à 14:42
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
0
cs_mahrouch Messages postés 2 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 3 juin 2008
3 juin 2008 à 23:43
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
0
Rejoignez-nous