AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien über TCP

Ein Thema von Meflin · begonnen am 13. Sep 2003 · letzter Beitrag vom 1. Mär 2004
 
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.049 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: Dateien über TCP

  Alt 17. Sep 2003, 09:17
Hi OrallY!

Da ich auch schon an dieser Sache versucht hab und gescheitert bin, bin ich dir erstmal dankbar für den Tip. Also, ich hab den Code noch etwas ergänzt, weil ich festgestellt hab, dass der Stream bei mir ca. 1,6 GB groß war, obwohl ich eine 2KB-Datei genommen hab. Das gab Probleme bei speichern, weil ich nicht mehr soviel Platz auf der Festplatte hatte (sonst hätte ich den Fehler vielleicht garnicht gefunden). Ich hab einfach mal die Größe der Datei vorweggeschickt; ich hab WriteLn bzw ReadLn benutzt, weil manchmal WriteInteger und ReadInteger Fehler macht, wenn die folgenden Daten auch als Integer ausgewertet werden könnten.
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
      WriteLn(IntToStr(fs.Size));
      WriteStream(fs);
    finally
      Disconnect;
      fs.Free;
    end;
  end;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  fs: TFileStream;
  size: Longint;
begin
  if not SaveDialog1.Execute then exit;
  fs := TFileStream.Create(SaveDialog1.Filename, fmCreate or fmShareExclusive);
  with AThread.Connection do
    try
      size := StrToInt(ReadLn);
      ReadStream(fs, size);
    finally
      Disconnect;
      fs.Free;
    end;
end;
Ach, und vergess nicht SendBufferSize(in Byte) des TCPClients auf eine Größe zu setzen, die mindestens so groß ist, wie die Datei, die du versenden möchtest.
Stefan
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz