你好我嘗試使用Indy組件與客戶端/服務器與TCP從客戶端發送文件到服務器知道文件的大小德爾福
我設法正確地發送和收到的文件發送一個文件通過TCP用delphi,問題是在發送文件之前,我想發送它的大小,並在我得到它的服務器後進行比較。
現在我發送文件從客戶端到服務器。
客戶:
Ms := TMemoryStream.Create;
Ms.LoadFromFile('cliente.exe');
Ms.Position := 0;
Result := True;
Client.IOHandler.LargeStream := True;
try
Client.IOHandler.Write(ms, 0, True);// (Ms, 0, true);
except
Result := False;
end;
Ms.Free;
服務器:
AStream := TFileStream.Create('C:\temp\file.exe', fmCreate + fmShareDenyNone);
try
AContext.Connection.IOHandler.LargeStream := True;
AContext.Connection.IOHandler.ReadStream(AStream, -1,false);
finally
FreeAndNil(AStream);
Memo1.Lines.Add('File received');
end;
所以現在的問題是我怎麼能與文件發送文件的大小?
使用'Client.IOHandler.Write(ms.Size);'發送的MemoryStream和 'AContext.Connection.IOHandler.ReadInt64之前;讀取將MemoryStream – bummi
THX很多之前',我媒體鏈接解決了與'TCPClient.IOHandler .WriteLn(inttostr(Ms.Size));'和 'sent_size:= strtoint(AContext.Connection.Socket.ReadLn());' – vexen