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 :
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 {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;
Comment sa se fait que je reçois uniquement des caractères blanc ?
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;
Info sup : buflen est une constante = 100.
Merci de votre aide !
Partager