Erreur de winsock

lightedge Messages postés 6 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 12 novembre 2006 - 22 mai 2006 à 07:38
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 23 mai 2006 à 18:21
bonjour
je suis entrain de créer un je de voitures sur réseau. Mais j'utilise les formes en local ça veut dire que j'utilise l'adresse de boucle 127.0.0.1.  Mais le message d'erreur suivant se produit lorsque j'essaie d'envoyer des donnees.
voila le screenshot de l'erreur


et voila sur ce qui suit comment j'ai initialisé le frm serveur et le frm client


frmserveur:
Private Sub Form_Load()
tcpserver.LocalPort = 1001
tcpserver.Listen
End Sub
frmclient:
tcpclient.RemoteHost = "127.0.0.1"
tcpclient.RemotePort = 1001


tcpclient.Connect
MsgBox ("connection reussi")
frmserveur.Show
End Sub

Les données que j'envoie sont ceux des touches sur lesquels j'appuie. L'evenement etant alors form_keydown(). voila un exemple d'envoie et de reception de donnée:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
vitesse = 100
If KeyCode = 37 Then
    imgcar1.Picture = imgcar5.Picture
    imgcar1.Left = imgcar1.Left - vitesse
    k = CStr(KeyCode)
    tcpclient.SendData k
End If
la variable k étant une variable globale sa declaration est la suivante:
Dim k as string
et voila aussi un exemple de reception des données sur le cote serveur:
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
 Dim k As String


tcpserver.GetData k


key = Val(k)


vitesse = 100
If key = 37 Then
    imgcar1.Picture = imgcar5.Picture
    imgcar1.Left = imgcar1.Left - vitesse
End If
If key = 38 Then
    imgcar1.Picture = Imgcar2.Picture
    imgcar1.Top = imgcar1.Top - vitesse
End If

Merci d'avance pour ceux et celles qui auront la gentiesse de me rependre

2 réponses

lightedge Messages postés 6 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 12 novembre 2006
22 mai 2006 à 19:34
http://img322.imageshack.us/my.php?image=erreur9fe.jpg
voila pour ceux qui utilisent firefox car moi même j'ai pas pu voir le screen shot que sur internet explorere
0
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
23 mai 2006 à 18:21
Salut
Pour les screen shots : Le 2eme lien : L'image est trop petite pour être lue
Le message (pourtant pas long à retaper) est "Etat de la connexion ou de protocole erroné pour la transaction ou la requète requise"

Cette erreur vient du fait que tu n'es pas connecté au moment où tu envoies qqchose.
Le fait d'exécuter le tcpclient.Connect ne suffit pas à garantir que la connexion est Ok.
Il faut, après ce .Connect, vérifier l'état du Winsock.
Quelques lignes que tu aurais pu trouver dans n'importe quelle source de qualité parlant de WinSock :Do While (tcpclient.State sckConnecting) Or (tcpclient.State sckResolvingHost)
                            ' 0 sckClosed                            ' 1 sckOpen
                            ' 2 sckListening                         ' 3 sckConnectionPending
                            ' 4 sckResolvingHost                ' 5 sckHostResolved
                            ' 6 sckConnecting                     ' 7 sckConnected
                            ' 8 sckClosing                           ' 9 sckError
   DoEvents
Loop
If tcpclient.State <> sckConnected Then
   tcpclient.Close
   MsgBox "Connexion a échoué"
End If

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
Rejoignez-nous