Так, циклов нету, событие Ресив проихсдоит просто часто. Вот один исходник:
Код:
var
l: Integer;
buf: PChar;
src: TFileStream;
pat: string;
begin
pat:='hz.rar';
l:= Socket.ReceiveLength;
GetMem(buf,l+1);
Socket.ReceiveBuf(buf[0],l);
if fileexists(pat) then src:= TFileStream.Create(pat, fmopenreadwrite) else src:= TFileStream.Create(pat, fmCreate);
src.Seek(0,soFromEnd);
src.WriteBuffer(buf[0],l);
src.Free;
FreeMem(buf);
end;
Есть второй вариант, там идет работа с TMemoryStream - работает лучше, тормозит только на сохранение файла, но данный вариант меня не устраивает.