Einzelnen Beitrag anzeigen

Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#1

Indy TCP und Write-/ReadStream-Methode

  Alt 16. Sep 2003, 17:38
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;
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat