Hallöchen. Nachdem Meflin in
diesem Thread nachgefragt hat, wie man Dateien über
TCP und den Indys verschickt, habe ich folgendes Beispiel gepostet. Doch bekomme ich immer bei der ReadStream-Methode einen EReadError ("Stream read error").
Da ich als letztes in den Thread von Meflin gepostet habe und dieser nicht als unbeantwortet gekennzeichnet ist, hab ich jetzt einfach einen neuen Thread aufgemacht, um auf das bis dato ungelöste Problem aufmerksam zu machen.
(Ich war der Ansicht, dass beim alten Thread leicht der Glaube entstehen könnte, dass er beantwortet ist. Und weil ich Meflins Problem lösen will, was nun auch zu meinem geworden ist, hab ich jetzt die Initiative ergriffen. Wenn die Moderatoren anderer Meinung sind, bitte :mrgeen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
begin
if not OpenDialog1.Execute then exit;
with IdTCPClient1 do
begin
fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
Connect;
try
WriteStream(fs);
finally
Disconnect;
fs.Free;
end;
end;
end;
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
fs: TFileStream;
begin
if not SaveDialog1.Execute then exit;
fs := TFileStream.Create(SaveDialog1.Filename, fmCreate or fmShareExclusive);
with AThread.Connection do
try
ReadStream(fs);
finally
Disconnect;
fs.Free;
end;
end;