Winsock concatène mes envoies GRRRRRRRRRRRR

cs_Shadok Messages postés 10 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 septembre 2003 - 6 déc. 2002 à 21:58
cs_Shadok Messages postés 10 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 septembre 2003 - 9 déc. 2002 à 09:55
Voila je suis un train de dévellopper une appli type client serveur et je voudrez récupérer l'ensemble des champs sur ma partie serveur sur mon appli client

pour l'instant j'en suis là :

For i1 = 0 To 7
i1 = Val(i1)
i2 = Me.champ(i1)
Me.Winsock2(Index).SendData textenvoi(i1, i2)
Next i1

La fonction testenvoi à juste pour role de concaténer les deux valeur i1 et i2
Le problème c que winsock n'envoie les données qu'une fois la boucle terminée et donc je ne retrouve sur mon appli client qu'un seul champ data avec tous mes valeurs.

Je souhaiterez éviter d'avoir à retravailler la chaine dans une procédure lourde sachant que i2 et de type alphanumérique et de longueur variable

Donc comment faire obliger winsock à envoyer ses données à chaque pas de la boucle.

Merci..... :big)

-----------------------------------------------------

C'est ici que viennent se retrouver les âmes perdues, cela s'appelle un forum!!!

3 réponses

ElDoktor Messages postés 22 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 7 décembre 2002
7 déc. 2002 à 18:59
Pour les envois de plusieurs champs avec winsock j'utilise Split:

Mettons que tu veuilles envoyé le champs
a$="Toto" et le champ b$="Tata"
Pour ca tu fais
Winsock1.SendData a$+":"+b$
(":" c'est au choix tu met le caractere de separation que tu veux)

ensuite tu le recupere
Winsock1.GetData Champ$

tu declare une variable:
Dim Txt() as String

Puis tu explose la chaine:
Txt=Split(Champ$,":")

Tu obtient alors Txt(0) et Txt(1) (le nombre de chaine peut etre determinée par UBound(Txt) ici ce sera egal a 2)
Et donc tu as Txt(0)="Toto" et Txt(1)="Tata"

Voila c'est une idée parmi d'autre.

Dok
0
Bricomix Messages postés 340 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 14 février 2005
8 déc. 2002 à 15:58
En faites c'est plus simple,il suffit que tu mettes un DoEvents pour que WinSock est le temps d'envoyer le reste !!!! Ca donne ça :

For i1 = 0 To 7
i1 = Val(i1)
i2 = Me.champ(i1)
Me.Winsock2(Index).SendData textenvoi(i1, i2)
DoEvents
Next i1

Sur ce, excellente prog à toi Shadok !!!

:-p Bricomix :-p
0
cs_Shadok Messages postés 10 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 septembre 2003
9 déc. 2002 à 09:55
Merci à vous deux.....

C'est ici que viennent se retrouver les âmes perdues, cela s'appelle un forum!!!
0
Rejoignez-nous