Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
Delphi 7 Personal
|
TCP Verbindung hestellen
1. Mai 2008, 09:23
Ich habe mir einen Beitrag aus der CodeLibery angegugt abe irgendwie weis ich nicht wie Delphi wissen soll mit wem er sich verbindet.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
begin
if not OpenDialog1.Execute then exit; //erstmal besorgt man sich den Pfad der Datei, z.B. mit dem Standard Dialog TOpenDialog
with IdTCPClient1 do
begin
fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen
Connect; //und Verbindung herstellen | ja aber mit wem????
//am besten localhost abe wie bringe ich
//delphi das bei?? :wall:
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
if not SaveDialog1.Execute then exit;
fs := TFileStream.Create(SaveDialog1.Filename, 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;
Maximilian Ruta
|
|
Zitat
|