Geht sogar noch etwas einfacher. Mit ReceiveBuf()
Jedoch
muss der Buffer (Buf) vom Typ AnsiChar sein. Sonst kommt auch Zeichensalat raus.
Delphi-Quellcode:
procedure TForm1.sockRead(Sender: TObject; Socket: TCustomWinSocket);
const
MAX_BUF = 100;
var
Buf :
array[1..MAX_BUF + 1]
of AnsiChar;
Bytes : Integer;
begin
Bytes := Socket.ReceiveLength;
while Bytes > 0
do
begin
Dec(bytes, Socket.ReceiveBuf(Buf, MAX_BUF));
Buf[MAX_BUF] := #0;
Memo1.Text := Memo1.Text + Buf;
end;
end;