Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datei von client über server an client (https://www.delphipraxis.net/68603-datei-von-client-ueber-server-client.html)

ghost007 2. Mai 2006 14:08


Datei von client über server an client
 
Hallo,
ich habe mich schon um die sucher bemüht und auch schon edliche tutorials durchsucht, bin aber noch zu keinem ergebnis gekommen ....
Folgendes Problem:
Client ---Datei--> Server ---Datei--> Client

Ich will das ein client über einen externen server eine datei an einen anderen client schicken kann.
Ich benutze für die Verbingung die idTCP Komponente aus den Indys.

ghost007 2. Mai 2006 19:16

Re: Datei von client über server an client
 
hm .... scheint ja nicht so euer lieblings thema zu sein :(
Bitte helft mir ... :wall:

Aenogym 2. Mai 2006 19:21

Re: Datei von client über server an client
 
hi,

eigentlich ganz einfach: client1 sendet die datei an den server. der server "speichert" sich diese datei in einem MemoryStream und sendet sie anschließend zu Client2.
wo ist denn dein problem? weißt du nicht, wie du eine datei mit indy sendest oder macht dir das zwischenspeichern auf server-seite probleme?

aeno

ghost007 2. Mai 2006 19:23

Re: Datei von client über server an client
 
Hi,
danke das mal jmd antwortet.
Das senden der Datei an den Server per Indy ist das Problem...

marabu 2. Mai 2006 19:50

Re: Datei von client über server an client
 
Hallo Christian,

prinzipiell geht das so:

Delphi-Quellcode:
var
  fs: TFileStream;
  fn: TFileName;
begin
  fs := TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite);
  try
    with TCPClient do
      WriteStream(fs);
  finally
    fs.Free;
  end;
end;
Allerdings brauchst du eine Protokoll mit dem du dich beim Server registrieren und regsitrierte Clients ermitteln kannst, damit überhaupt ein Store & Forward Betrieb möglich ist.

Grüße vom marabu

ghost007 2. Mai 2006 19:52

Re: Datei von client über server an client
 
Zitat:

Zitat von marabu
Delphi-Quellcode:
var
  fs: TFileStream;
  fn: TFileName;
begin
  fs := TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite);
  try
    with TCPClient do
      WriteStream(fs);
  finally
    fs.Free;
  end;
end;

Heißt das, wenn ich mit fs dann
Delphi-Quellcode:
ClientSocket1.SendStream(fs);
mache, empfängt der connected server den stream?
Und wie kann ich einen recived stream in ne datei schreiben?

marabu 2. Mai 2006 20:02

Re: Datei von client über server an client
 
Ich bleibe mal bei Indy9:

Delphi-Quellcode:
procedure TDemoForm.TCPServerExecute(AThread: TIdPeerThread);
var
  s: TStream;
  fn: TFileName;
begin
  // fn aus deinem Protokoll ermitteln
  s := TFileStream.Create(fn, fmCreate or fmShareDenyWrite);
  AThread.Connection.ReadStream(s);
  s.Free;
end;
marabu

ghost007 2. Mai 2006 20:04

Re: Datei von client über server an client
 
und wie schreibe ich den stream dann als datei?

marabu 2. Mai 2006 20:07

Re: Datei von client über server an client
 
Ist schon passiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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