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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !