AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy : Datei von Server an Client senden

Indy : Datei von Server an Client senden

Ein Thema von benst · begonnen am 6. Sep 2006 · letzter Beitrag vom 11. Sep 2006
Antwort Antwort
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#1

Indy : Datei von Server an Client senden

  Alt 6. Sep 2006, 19:30
Moin,

ich möchte mit den Indy-Komponenten eine Datei vom Server an Client schicken. Konnte jedoch nur Infos zum Senden von Dateien vom Client zum Server finden. So z.B. bei den Indy-Beispeielen oder unter
http://www.delphipraxis.net/internal...ct.php?p=72333.
Wie stelle ich den Client auf "Empfangen"?
Oder kennt jemand einen anderen Beitrag, der mir weiterhelfen könnte.
Danke.
Gruß
Ben
P.S.: Delphi 5 Standard + Indy 9
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Indy : Datei von Server an Client senden

  Alt 7. Sep 2006, 16:26
Lustig, genau den Code habe ich erst letztens umgedreht^^
Womit wir auch schon beim Thema sind. EInfach umdrehen. Da der Server allerdings nicht einfach dem CLient was sagen kann, ohne das dieser das erwartet, solltest du den Client, wenn der die Datei möchte, dem Server dieses Mitteilen lassen.
Hoffe die Informationen reichen erstmal, sonst sag bescheid.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#3

Datei von Server an Client senden - Software???

  Alt 7. Sep 2006, 19:41
Zitat von inherited:
EInfach umdrehen.
Das habe ich mir auch gedacht, aber es nicht richtig hinbekommen...
Bevor ich davon spreche noch etwas allgemeines.

Ich habe folgende Ziel: Ich möchte Dateien von einem Quell-Computer zu einem Ziel-Computer über das Internet direkt verschicken können. Dazu folgende Anmerkungen:
  • Der Ziel Computer sitzt hinter einem Router und soll sich daher als Client beim Server einloggen. (Ich möchte bzw. kann beim Ziel Computer keine Portweiterleitung einrichten.)
  • Der Server soll dem Client Dateien schicken können, ohne dass jemand am Ziel Computer jeden Dateiempfang bestätigen muss.
Quasi: Ich starte den Server, das Gegenüber loggt sich per Client ein und ich kann ihm dann nach meiner Lust und Laune Dateien schicken.

Lösungvorschläge:
  • "normaler" FTP-Server auf Ziel-Computer und FTP-Client auf Quell-Computer: Geht nicht, weil sich der Zeil Computer hinter einem Router befindet.
  • "normaler" FTP-Client auf Ziel-Computer und FTP-Server auf Quell-Computer: Geht nicht, weil jemand am Zeil-Computer agieren muss, dies soll aber vom Server aus geschehen.
  • Dateien über Skype verschicken: Geht nicht, Dateien müssen alle am Ziel-Computer quitiert werden.
  • Dateien per Mail verschicken: Geht nicht, Dateien sind zu groß für das Postfach.
  • ???

Bisher ist mir noch keine Lösung für dieses Problem eingefallen/ ist mir noch keine Software eingefallen, mit der ich dies realisieren kann.
Achso, wäre auch nett, wenn man der Kommunikationsweg verschlüsselt wird.
Vielleicht habt ihr ja einen Lösungsvorschlag bevor ich mir ein Tool bastel, obwohl es eine einfachere Lösung gibt.

Ich werde mal abwarten, ob es Lösungsvorschläge gibt, bevor ich mich weiter mit meinem Problem bei der "Umdrehung" des Delphi Codes auseinandersetze - dann werde ich auch meine Probleme schildern.

@inherited: Könntest du mir bitte trotzdem mal deinen Code schicken?
Danke

Gruß
Ben
  Mit Zitat antworten Zitat
hä was

Registriert seit: 7. Sep 2006
1 Beiträge
 
#4

Re: Indy : Datei von Server an Client senden

  Alt 7. Sep 2006, 20:46
schon mal was von hamachi gehört?
damit lässt sich eine netzwerkverbindung über
das internet herstellen, über die dann auch dateien
feigegeben werden können.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Indy : Datei von Server an Client senden

  Alt 8. Sep 2006, 20:57
Zitat von hä was:
schon mal was von hamachi gehört?
Ist nicht verschlüsselt...
@benst:
Lass den Client einfach alle 10 sekunden oder was immer du da möchtest, den Server fragen ob es was neues gint. Dieser gibt dann jedesmal "nö" zurück, eben bis er etwas senden soll.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#6

Re: Indy : Datei von Server an Client senden

  Alt 10. Sep 2006, 17:39
naja wie schon von inherited gesagt ist das die beste lösung

Zitat von benst:
Ich habe folgende Ziel: Ich möchte Dateien von einem Quell-Computer zu einem Ziel-Computer über das Internet direkt verschicken können. Dazu folgende Anmerkungen:
Der Ziel Computer sitzt hinter einem Router und soll sich daher als Client beim Server einloggen.
naja dazu^^ ich weiss schon was es wird

aber da ich ja gerne hilfsbereit bin hier der code:
client:
Delphi-Quellcode:
procedure TForm1.ti_dl_upTimer(Sender: TObject);
var
  FStream:tfilestream;
  lline_b:string;
begin
  s_zspeicher:=eigenschaft1;
  IdTCPClient_filemanager.IOHandler.WriteLn('was neues?');
  line_b:=IdTCPClient_filemanager.IOHandler.readln;
  if (line_b='dl_file') then
  begin
    FStream := TFileStream.Create('ieine datei', fmOpenRead);
    IdTCPClient_filemanager.iohandler.Write(Fstream,0,true);
    FreeAndNil(FStream);
  end
  else if (line_b='up_file') then
  begin
    FStream := TFileStream.Create('ieine datei',fmCreate);
    IdTCPClient_filemanager.IOHandler.ReadStream(fstream);
    freeandnil(fstream);
  end;
end;
server:
Delphi-Quellcode:
procedure TForm1.IdTCPServer_filemanagerExecute(AContext: TIdContext);
var
  was_tun,s_name:string;
begin
  was_tun:=AContext.Connection.IOHandler.ReadLn;
  AContext.Connection.IOHandler.writeln('up/dl file');//was man halt will
  was_tun:='dl_file/up_file';
  if (was_tun='dl_file') then
  begin
    FStream := TFileStream.Create('ieine datei', fmCreate);
    AContext.connection.IOHandler.ReadStream(fstream);
    FreeAndNil(FStream);
  end
  else if (was_tun='up_file') then
  begin
    FStream:=TFileStream.Create('ieine datei',fmOpenRead);
    AContext.connection.IOHandler.Write(Fstream,0,true);
    freeandnil(fstream);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Indy : Datei von Server an Client senden

  Alt 10. Sep 2006, 20:35
Das ist aber Indy10, er benutrzt Indy 9...^^
Außerdem sollst du nichts verraten, er soll das ohne Klicki-Copy-Pasti-Bunti schaffen^^
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#8

Re: Indy : Datei von Server an Client senden

  Alt 10. Sep 2006, 20:53
Danke...
Da es wohl noch etwas dauern wird, bis ich das Projekt wirklich am Laufen haben werde, habe ich erst einmal auf dem Quell-Computer einen SSH-Server (SFTP) installiert und das Gegenüber muss halt erst einmal doch die Aktionen durchführen. (Möchte die Daten ja eigentlich noch verschlüsseln und bis das alles fertig ist, kann das wirklich noch dauern.)

Ich werde mich weiter damit auseinandersetzen - ihr habt mir ja schon gute Ansätze gegeben.
Achso, noch etwas. Kann ich die Geschwindigkeit auch drosseln? Wenn ich mit voller Bandbreite an das Gegenüber hochlade, beschwert sich mein Mitbewohner, dass sein Spiel leckt.
Ben
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#9

Re: Indy : Datei von Server an Client senden

  Alt 11. Sep 2006, 21:26
also mit der geschwindigkeitsbegrenzung habe ich hier schonmal nachgefragt aber keiner wusste was und bis jetzt habe ich auch noch nichts gefunden
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:05 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