Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datei an Client schicken (IdTCP) (https://www.delphipraxis.net/52326-datei-client-schicken-idtcp.html)

storm1988 27. Aug 2005 22:20


Datei an Client schicken (IdTCP)
 
Moin

Bevor ich sinnlos rumprogrammiere wollt ich euch mal frage ob es überhaupt geht, dass man mit der Indy Komponente IdTCPServer Daten an den Client schickt?

Mfg

ManuMF 28. Aug 2005 11:29

Re: Datei an Client schicken (IdTCP)
 
Siehe hier.
Das muss dann natürlich genau andersrum passieren, eine Verbindung von Client zum Server vorausgesetzt.
Gilt für die Indys ab Version 10.

Gruß,
ManuMF

hflick 28. Aug 2005 12:45

Re: Datei an Client schicken (IdTCP)
 
Server sendet Dateien an den Client oder der Client an den Server.

Und ja, es ist möglich. Indy 10 hat im IOHandler entsprechende Methoden zum schreiben von Streams, also auch Dateien. Also wenn der Client
Delphi-Quellcode:
IOHandler.Write( myStream );
ausführt, wird der Strean an den Server "gesendet".

--
Holger

ManuMF 28. Aug 2005 13:35

Re: Datei an Client schicken (IdTCP)
 
@storm1988: Wenn du es wie in meinem Beispiel machst, musste du nur die Code-Zeilen im with-Bereich austauschen, und zwar

Delphi-Quellcode:
// Client

with Acontext.connection do
  begin
    try
      Socket.Write(IDS, 0, true);
    finally
      Disconnect;
    end;
  end;
und
Delphi-Quellcode:
// Server
with Acontext.connection do
  begin
    try
      SizeOfIncomingStream := Socket.ReadInteger;
      Socket.ReadStream(IDS, SizeOfIncomingStream);
    finally
      Disconnect;
    end;
  end;
Natürlich müssen auch die Streams andersrum behandelt werden (Open-Dialog bzw. feste Datei beim Server, Save-Dialog etc. beim Client).

Gruß,
ManuMF

storm1988 28. Aug 2005 16:21

Re: Datei an Client schicken (IdTCP)
 
Zitat:

Zitat von ManuMF
Siehe hier.
Das muss dann natürlich genau andersrum passieren, eine Verbindung von Client zum Server vorausgesetzt.
Gilt für die Indys ab Version 10.

Gruß,
ManuMF

Hallo danke mal für die vielen Informationen, aber funktioniert das auch bei größeren Dateien, oder muss ich die vorher noch splitten???

Mfg

hflick 28. Aug 2005 17:31

Re: Datei an Client schicken (IdTCP)
 
Indy 10 kann das automatisch. Das wird dann automatisch über einen Buffer etc. geregelt. Unter Indy 9 war das noch etwas komplizierter.

Antwort ist also: Dateien können beliebig gross sein.

--
Holger

ManuMF 28. Aug 2005 18:23

Re: Datei an Client schicken (IdTCP)
 
Habe es bis 560MB ausprobiert, ging tadellos (hat halt nur lange gedauert).

hflick 28. Aug 2005 18:25

Re: Datei an Client schicken (IdTCP)
 
geringe Bandbreite? :zwinker:

storm1988 28. Aug 2005 20:34

Re: Datei an Client schicken (IdTCP)
 
Hi Danke für die Infos :thumb:
Habs nämlich früher immer mit indy 9 realisiert und des war extrem umständlich......

storm1988 28. Aug 2005 22:02

Re: Datei an Client schicken (IdTCP)
 
Moin

Ich hät jetzt doch nochmal eine Frage zu deinem Source Code. Immer wenn ich mein Programm mit dem Code Compiliere kommt bei mir diese Fehlermeldung: Undefinierter Bezeichner: 'TidStreamVCL'. Muss ich da noch irgendwas zusätlich einbinden??

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
Seite 1 von 2  1 2      

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