Si je lis dans l'aide, cette fonction retourne le nombre d'octets reçus et si ce nombre est égal à la taille du buffer il reste des données.
Maintenant on va dire que l'on donne un buffer de 10 octets et qu'on reçoit 10 octets.
La fonction devrait renvoyer 10 puisqu'on a reçu 10 octets et selon l'aide y'a encore des données mais vu qu'on a déjà tout reçu au coup suivant la fonction devrait retourner 0.
Je suis dans le bon ou je délire ?
C'est important pour moi car je fais une allocation dynamique du buffer dans cette boucle.
ReceiveNetworkData, cas exceptionnel
ReceiveNetworkData, cas exceptionnel
Vive le thread-safe !
Un petit extrait de code pour que tu soies plus sûr

Code : Tout sélectionner
requestlength.l = ReceiveNetworkData(ClientID, *buffer, 4096)
If requestlength> 0 ; Data To receive
Gosub traite_requete
ElseIf requestlength = 0 ; gracefull disconnect
done = #True ; so close the socket
Else
error.l = WSAGetLastError_()
If error=#WSAEWOULDBLOCK ; whe are non-blocking so: no more data to read
Delay(100)
done = #True ; so close the socket
ElseIf error<>0