themaste
Messages postés130Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 8 juillet 2008
-
13 mai 2003 à 10:53
psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009
-
21 mai 2003 à 19:23
Salut a tous!!
J'aimerais savoir si les messages RECUES par winsock sont de facon SUR toujours complete ??
Et si non, existe-t-il un moyen pour assurer le faire de recevoir un message en entier, du mme style que la methode de sendComplete du composant?
themaste
Messages postés130Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 8 juillet 20082 13 mai 2003 à 11:30
ah ok... c peut etre un pbl..mais donc si je comprds bien, si le message depasse le buffer, il est coupé en deux 50/50? ou alors il coupe jusqu'a qu'il ne puisse plus en mettre, et passe au reste ensuite?
Et dans le cas de coupure.. comment puis-je recuperer deux buffers d'affilés?
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 13 mai 2003 à 11:39
v'la 1 exemple, tiré dun objet com que j'ai créé y'a longtemp.
je passe directement par les api winsock et je scrute le buffer en permanance.
Private Declare Function recv Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Private Function ReadSocket(NumSocket As Long) As String
Dim X As Long, ReadBuffer(1 To 1024) As Byte
Dim buffer As String
ReadSocket = ""
Do
X = recv(NumSocket, ReadBuffer(1), 1024, 0)
If X > 0 Then
buffer = buffer + Left$(StrConv(ReadBuffer, vbUnicode), X)
End If
If X <> 1024 Then Exit Do
DoEvents
Loop
ReadSocket = buffer
End Function
:clown) BasicInstinct :clown)
Vous n’avez pas trouvé la réponse que vous recherchez ?
psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009 21 mai 2003 à 19:23
slt,
ce ke tu peut faire, c kan tu recois les data (getdata), tu les place dans une variable et tu les renvoit au server. s le server recoit exactement les données qu'il vient d'envoyer, il envoit un truc spe style "data ok", sinon il envoit un autre truc spe style "data no" et renvoit aussitot les data complete.
apres 3 essais échoués par exemple, le erver arrete d'envoyer les données pour pas faire de bug. Voila, ou alors, le server fragmente les données, envoit un 1er message avec le nombre de paquets a envoyer, puis les envoit avec un numéro de séquence chaqun.