[SocketAPI] Problème de reception
Bonjours,
-------------------------------
Je suis en train de développer un projet Client/Server et du fait que j'en avais mare des composants Scktcomp (TClient et TServerSocket) ainsi que Indy j'ai voulu me mettre au SocketAPI ( notamment pour géré le multi Transfer ) mais j'ai un petit problème et je pense que c'est dut a Delphi2010 et l'Unicode, je réceptionne mal les caractères envoyer.
voici ma fonction d'envoi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
{SendText to client------------------------------------------------------------}
procedure SendString(str:string);
var
sendbuf :array[0..buflen -1] of Char;
sendLen :Integer;
i :Integer;
begin
if str <> '' then
begin
for i := 0 to Length(str) -1 do sendbuf[i] := (str)[i+1];
sendLen := send(s,sendbuf,buflen,0);
if sendLen < 0 then
begin
WSACleanup;
Exit;
end;
end;
End; |
et ma fonction qui doit recevoir le texte :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
procedure SocketWorkThread(wSock :TSocket);stdcall;
var
recvbuf :array[0..buflen -1] of Char;
Receive,i :Integer;
cString :AnsiString;
hSock : integer; //Socket Handle
begin
try
while true do begin
hSock := wSock;
Receive := recv(wSock,recvbuf,buflen,0);
if Receive < 1 then begin
{Socket disconnected----------------------------------------------------}
Showmessage('disconnected');
CloseSocket(wSock);
ExitThread(0);
{-----------------------------------------------------------------------}
end;
cString := PChar(@recvbuf);
{Socket OnRead------------------------------------------------------------}
Showmessage(cString);
{-------------------------------------------------------------------------}
end;
except
{Log there}
Exit;
end;
end; |
Comment sa se fait que je reçois uniquement des caractères blanc ?
Info sup : buflen est une constante = 100.
Merci de votre aide !