Code : Tout sélectionner
Size = ReceiveNetworkData(connection, *netBuffer, 65536)
netBuffer.s = PeekS(*netBuffer, -1, #PB_UTF8)
Je trouve pas la solution là...

A l'aide!

Code : Tout sélectionner
Size = ReceiveNetworkData(connection, *netBuffer, 65536)
netBuffer.s = PeekS(*netBuffer, -1, #PB_UTF8)
SendNetworkString() fournit une solution rapide pour envoyer rapidement des chaînes de caractères.
La chaîne sera envoyée en tant que donnée brute (sans le caractère NULL de terminaison), aussi peut-elle être reçue en utilisant ReceiveNetworkData(), après que NetworkServerEvent() / NetworkClientEvent() ait renvoyé #PB_NetworkEvent_Data).
En mode unicode la chaîne est envoyée en UTF-8, qui est indépendant du processeur (contrairement à UTF-16).
Code : Tout sélectionner
Size = ReceiveNetworkData(connection, *netBuffer, 65536)
Et même un peu plus: 1 à 4 octets.boby a écrit :l'UTF-8 a des taille de caractères variable, (1 à 2 bytes) [...]
Code : Tout sélectionner
netBuffer.s = PeekS(*netBuffer+skip, -1, #PB_UTF8)
Code : Tout sélectionner
Case #PB_NetworkEvent_Data
Repeat
Size = ReceiveNetworkData(connection, *netBuffer, 65536)
;##code quand le buffer est plein##
Until Size <> 65536
Code : Tout sélectionner
payload.s = Left(payload.s, Len(payload.s)-3) ; removing ReceiveNetworkData() garbage at EOL (only when ReceiveNetworkData() splits data)
Code : Tout sélectionner
Structure Buffer
A.A[65536]
EndStructure
Define *Mem.Buffer
Code : Tout sélectionner
Define *X = AllocateMemory(1000)
Code : Tout sélectionner
*Mem = *X
D'accord! Donc en fait, c'est le serveur qui découpe la frame et rajoute des caractères de fin de paquet et non PureBasic?Ollivier a écrit :Les paquets que tu reçois c'est normal : ça dépend du temps qu'il fait, du trafic et de l'affluence sur le serveur.
Des fois, les paquets sont petits, des fois, carrément pas.