Работаю с сокетами, возник вопрос - как отследить скачку файла? Т.е. отправляю файл с клиента на сервер, как мне проследить сколько байт файла уже скачалось? Файл передаю примитивно:
Код:
1 | Socket.SendStream(TFileStream.Create('123.txt', fmOpenRead or fmShareDenyWrite));
|
Принимаю:
Код:
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 | private
FStream: TFileStream;
-
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
iLen: Integer;
Bfr: Pointer;
begin
iLen := Socket.ReceiveLength;
GetMem(Bfr, iLen);
try
Socket.ReceiveBuf(Bfr^, iLen);
FStream.Write(Bfr^, iLen);
finally
FreeMem(Bfr);
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
FStream := TFileStream.Create('1.txt', fmCreate or fmShareDenyWrite);
end;
|
Как мне вывести процесс передачи например в progressbar?