send() selon la MSDN, on lui passe la taille du buffer donc le zéro n'a pas de conséquence à l'envoie 
Heureusement, sinon on ne pourrait pas envoyer des record sérialisé si il y avait une gestion par zéro terminal 
(justement un bug du TCP\IP à l'époque de Windev 7.0)
Ensuite, pour la réception avec 
recv, c'est le même principe, on indique la taille du buffer mais surtout il renvoie le nombre d'octet réellement écrit !
C'est peut-être la ton erreur, tu utilise un StrPas ou un assimilé String\AnsiString implicite alors qu'il faut bien s'arrêter au nombre d'octet lu !
Evite le type string, préfere le type Windows.BYTE ou array of Byte, des buffers sans risque en XE2 !
surtout qu'en Delphi, le paramètre est un buffer non typé donc pas d'histoire de chaine à zéro terminal
	
	1 2
   | function send(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
function recv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;  | 
  
			
		
Partager