Ist der Code aus der Code-Libary -->
TCP/IP/LAN
nur das ich nicht die Open- und Save-Dialoge nutze sonder direkt die beiden Dateien eingetragen habe.
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
begin
.
.
.
with IdTCPClient1 do
begin
fs := TFileStream.Create('Dateiname1', fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen
Connect; //und Verbindung herstellen
try
OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden
try
WriteStream(fs, true, true, 0); {das 2. true ist wichtig!, da es bewirkt, dass die Größe des Streams mittels WriteInteger zuerst verschickt wird}
CloseWriteBuffer;
except
CancelWriteBuffer;
raise;
end;
finally
Disconnect;
fs.Free;
end;
end;
end;
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
fs: TFileStream;
SizeOfIncomingStream: integer;
begin
fs := TFileStream.Create('Dateiname2', fmCreate or fmShareExclusive);
with AThread.Connection do
try
SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen
ReadStream(fs, SizeOfIncomingStream); //und übergeben
finally
Disconnect;
fs.Free;
end;
end;