1. Warum liest du in deinem Server erst einen Integer raus wie lang der Stream angeblich sein soll? Den schreibst du in deinen Button1Click doch auch nicht rein! Einfach weglassen und alles lesen
2. Mach den FileStream auch wieder zu am Schluss!
Delphi-Quellcode:
procedure TForm10.Button1Click(Sender: TObject);
var
FStream:TFileStream;
begin
FStream := TFileStream.Create(fileIn, fmOpenRead);
try
IdTcpClient1.Connect();
IdTCPClient1.Socket.Write(FStream);
IdTCPClient1.Disconnect();
finally
FStream.Destroy();
end;
end;
procedure TForm10.IdTCPServer1Execute(AContext: TIdContext);
const
fileOut = 'x:\zipfile_out.zip';
Var
FStream: TFileStream;
begin
FStream := TFileStream.Create(fileOut, fmCreate);
try
AContext.Connection.Socket.ReadStream(fstream);
AContext.Connection.Disconnect();
finally
FStream.Destroy();
end;
end;
So funktioniert das bei mir ohne Probleme...