Envoie d'une variable avec SendData --- Besoin d'aide :( - VB/VBA/VBS - Programmation
Marsh Posté le 27-10-2002 à 21:49:38
n'est-ce pas là un problème de protocole que tu dois établir? Je veux dire, ton programme en réception sait-il à l'avance ce qu'il va recevoir comme donnée?
Marsh Posté le 28-10-2002 à 16:07:25
en gros la commande senddata envoie la valeur d'une variable :
ex : winsock.senddata (variable)
(dites moi si j'ai faux
et la commande getdata recoit ces données
si l'on introduite getdata dans une sub dataarrival, des qu'un senddata est détécté getdata recoit les donnée :
ex:
winsowk.getdata data
--------------------
ma question est peut-ton envoyer plusiseurs choses en meme temps et comment les differencier à l'arrivée ????
merci d'avance
Marsh Posté le 28-10-2002 à 16:31:05
tu peux envoyer qu'une variable à la fois, genre une string. Une string peut-être issue de la conversion d'un tableau par exemple.
C'est clair que c'est à toi de décider la façon dont tu vas faire passer tes données de l'un à l'autre. Et pour cela, tu dois décider d'un protocole. Genre le premier caractère identifie le type de donnée, et le second la longueur, etc etc...
J'ai utilisé cela dans le passé et je faisais des strings à ma sauce que j'envoyais d'un coup. Au niveau DataArrival, fallait bien sûr que la fonction sache interpréter les données reçues. Ici, c'est à ton imagination de jouer.
Marsh Posté le 28-10-2002 à 16:39:16
ok merci, je vois en gros ce que tu veux dire, et j'ai une petite idée de ce que je vais faire
@ +
Marsh Posté le 28-10-2002 à 23:25:56
en fouinant un peu des sources j'ai trouvé ça :
socket.GetData donnee
If InStr(1, donnee, "PERDU", vbBinaryCompare) Then
donnee = Replace(donnee, "PERDU", "", 1, , vbBinaryCompare)
decoup = Mid(donnee, InStr(1, donnee, "pion:", vbBinaryCompare) + 5)
pos = InStr(1, decoup, "|", vbBinaryCompare)
donnee = Mid(decoup, 1, pos - 1)
decoup = Mid(decoup, pos + 1)
estce que kelkun pourrait me dire clairemetn ce que ça veut dire ?
particulièrement le
-Instr et a koi corresponds ce kil y a entre()
-le Mid et a koi corresponds ce kil y a entre()
j'ai vu ça ds plusieurs source. Ne cerait-il pas un moyen de séparere et de récupérer au bon endrois les donnes reçus par senddata ???
Marsh Posté le 28-10-2002 à 23:28:58
Citation : |
Citation : |
Marsh Posté le 27-10-2002 à 20:30:58
alors voilà, lors du click sur un bouton un texte est envoyé sur un pc en réseau local connecté grace a winsock ou tourne le meme programme. Voici le code lors du clik sur un bouton :
Private Sub Command3_Click()
WS.SendData (Text2)
Text2.Text = ""
End Sub
l'autre pc recoit le texte grace au code suivant:
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
WS.GetData Data
Text1.Text = Data
end sub
tout cela marche.
LE problème vient du fait que maintenant j'aimerai envoyer a l'autre pc le nombre que contient une variable que l'on va appeller x lorsque je clique sur un autre bouton:
moi j'écris:
Private Sub Command5_Click()
WS.SendData (x)
End Sub
et sur l'autre pc:
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
WS.GetData x
Text2.Text = x
end sub
Et là ça ne marche pas
Si dans le dataarrival je met data à la place des x, il le confond avec les data précédent, donc je ne sais pas comment faire
plese help