Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Client/ServerSocket!! Download-Upload Example, HowTo? (https://www.delphipraxis.net/10196-client-serversocket-download-upload-example-howto.html)

dde 13. Okt 2003 15:14


Client/ServerSocket!! Download-Upload Example, HowTo?
 
Mich würde es interessieren, wie man mit den Client/ServerSockets ein Up- bzw. Download von Dateien hinbekommt. Soviel ich weiß gibt es sowas wie "SendText", aber kann man das dann auch auf die Datei beziehen...?

SleepyMaster 13. Okt 2003 15:30

Re: Client/ServerSocket!! Download-Upload Example, HowTo?
 
SendStream ist eine Lösung!!!

SleepyMaster 13. Okt 2003 15:34

Re: Client/ServerSocket!! Download-Upload Example, HowTo?
 
Oder halt ma im Forum gucken :)

http://www.delphipraxis.net/internal...ct.php?p=74714

Client
Source:
Delphi-Quellcode:

procedure TFtClient.BtSendenClick(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 TCPClient do
  begin
    fs := TFileStream.Create(OpenDialog1.FileName, 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;

Server
Source:

Delphi-Quellcode:
procedure TFTServer.TCPServerExecute(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;

dde 13. Okt 2003 15:39

Re: Client/ServerSocket!! Download-Upload Example, HowTo?
 
Oh, so einfach ist das ja.., naja vielleicht wird es mal nützlich..


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz