oliv5 Pourquoi ? Parce que ! | Facile. Je suppose que client est un objet de type socket, et que tu travailles en TCP (ie mode connecté).
Dans la fonction receive, tu peux spécifier le nombre d'octets max à lire d'un coup.
Le code le plus correct est celui là, je pense.
Code :
- int nbOctetsRecus=0;
- int length=4;
- do
- {
- nbOctetsRecus=client.Receive(b_buffer,4-length,length,SocketFlags.None);
- length-=nbOctetsRecus;
- }while(length>0 && nbOctetsRecus>0); //si nbOctetsRecus==0 alors la connexion a été coupée
- // ici, ton buffer est plein (length==0), ou alors la connexion a été coupée (nbOctetsRecus==0)
- if (nbOctetsRecus>0)
- {
- //La trame est bonne, il reste à la lire
- }
- else
- {
- //Connexion perdue :)
- }
|
|