Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Beste Vorgehensweise für permanente FTP-Verbindung? (https://www.delphipraxis.net/169666-beste-vorgehensweise-fuer-permanente-ftp-verbindung.html)

ernschd 3. Aug 2012 13:07

Beste Vorgehensweise für permanente FTP-Verbindung?
 
Hallo,

bisher baut mein Programm zu Beginn eine FTP-Verbindung auf (Indy zu Filezilla-Server), hält diese mit einem Noop-Befehl aufrecht und transferiert bei Bedarf Daten hin und her. Am Ende wird die Verbindung geschlossen.
Allerdings bin ich mit dieser Lösung nicht 100% zufrieden, da es z.B. zu Fehlermeldungen in der Software kommt, wenn der FTP-Server weg ist, oder es klappt der automatische Verbindungsaufbau nach einem Abbruch nicht.

Hat jemand eine Idee, wie ich das ganze besser lösen könnte? Ich dachte z.B. daran, einen Thread zu starten, der die Verbindung herstellt, die Daten transferiert uns danach die Verbindung wieder schließt.
Wie geht der Server damit um, wenn z.B. 20 Clients sich häufig verbinden? Geht der Aufbau schnell genug, damit der Anwender nicht zu lange warten muss?

Grüße,
ernschd

s.h.a.r.k 3. Aug 2012 14:24

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Ich finde, dass du da etwa falsch vorgehst. Erst wenn du wirklich Daten transferieren willst solltest du eine Verbindung aufbauen und die Daten auf den Server schaufeln. Dauerhaft eine Verbindung halt ist imho eher schlecht, da z.B. andere Clients auf eine Verbindung warten müssen, wenn die maximale Anzahl an gleichzeitigen Verbindungen erreicht ist. Ebenso wird halt ständig die Verbindung aufrecht erhalten -- aber wofür genau? Es wird ja nichts gemacht. Lässt du dein Auto auch ständig laufen, nur dass du gleich losfahren kannst, wenn es mal brauchst? (Okay, der Vergleich hinkt ein wenig, aber macht die Situation klar ;) )

himitsu 3. Aug 2012 14:40

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Und dann ist FTP eh nicht für eine dauerhafte Verbindung ausgelegt.

OK, es gibt "inzwischen" das NOOP, aber genügend Server ignorieren es, bzw. trennen dennoch nach einer Weile die Verbindung.


FTP ist eigentlich ein recht schlankes Protokoll, wolit es kein Problem sein sollte, die verbindung öfters mal neu aufzubauen.

PS: HTTP baut praktisch auch für jede Seite/Datei/Bild eine neue Verbindung auf.
Klar, wenn man "hintereinander" mehreres Überträgt, währe es unnötig die Verbindung nach jeder Datei zu trennen, aber wenn man (für ein Weilchen) nichts mehr vor hat, dann sollte man es schon machen, siehe auch die Begründungen vom Hai.

p80286 3. Aug 2012 14:53

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Wieso gibt es eigentlich immer noch Leute, die der Meinung sind, man müßte irgendwelche Verbindungen zu irgendwelchen Rechnern "offen" halten .
Nur analoge Datenversendung (Telefon,Fernsehen,Rundfunk) ist darauf angewiesen ständig eine Leitung "offen" zu halten. Sobald die Nachrichtenübertragung digital erfolgt, werden nur noch (Daten)Päckchen verschickt. Du brauchst also nur noch dafür zu sorgen, daß die Päckchen abgeliefert werden können (automatischer Türöffner), aber Du mußt nicht mehr die Türe offen stehen lassen, weil irgendwann einmal ein Postbote ein Päckchen abliefern will.

Gruß
K-H

Furtbichler 3. Aug 2012 17:09

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Wenn es um Millisekunden geht, präferiere ich eine bereits geöffnete Verbindung.
Sonst eher nicht.

schotti65 7. Feb 2014 19:19

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
@ernschd; zu welcher Lösung bist Du denn gekommen?

Ich habe aktuell das Problem andersrum.
Bisher baut das Programm 1x/Minute eine FTP Verbindung auf zwecks upload/download diverser Dateien.
Zukünftig sollen jedoch mehrere verschiedene FTP Verbindungen alle paar Sekunden geöffnet werden.

Der Webspace ist auf Strato, und aktuell gehen - mit LAN im Büro - im Schnitt 500ms nur für den Verbindungsaufbau drauf.
Da das ganze am Ende im Freien - mit Surfstick oder iPad Hotspot - laufen soll, befürchte ich, das Programm ist nur noch mit Warten beschäftigt...

mjustin 8. Feb 2014 09:07

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Zitat:

Zitat von p80286 (Beitrag 1176826)
Wieso gibt es eigentlich immer noch Leute, die der Meinung sind, man müßte irgendwelche Verbindungen zu irgendwelchen Rechnern "offen" halten .

HTTP persistente Verbindungen (ab HTTP 1.1) und das SPDY Protokoll sind Beispiele für die massiven Vorteile ständig geöffneter Verbindungen gegenüber neuer Verbindungen je Request.

Auch würde Telnet (so wie eine Reihe anderer asynchroner Protokolle wie AMQP, MQTT, STOMP) nicht funktionieren, wenn nach dem Senden einer Nachricht vom Client an den Server die Verbindung gleich wieder getrennt würde...

ernschd 11. Feb 2014 10:46

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Hi,

ich habe mein Programm so abgeändert, dass es zu bei jeder Interaktion mit dem FTP prüft, ob es Verbunden ist; wenn nicht, wird die Verbindung aufgebaut.
Anschließend werden die Daten übertragen. Die Verbindung wird erst beim Schließen des Programms beendet (oder wenn der FTP-Server keine Lust mehr hat).
Der Grund dafür ist, dass ich nicht im Voraus weiß, ob der Anwender gleich wieder eine FTP-Operation durchführen oder was anderes machen will.

schotti65 11. Feb 2014 12:36

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
Hört sich vernünftig an.
Prüfen - einfach nur "if xyz.connected..." oder fängst Du geg.falls den Abbruch irgendwie explizit ab?

supermuckl 11. Feb 2014 14:01

AW: Beste Vorgehensweise für permanente FTP-Verbindung?
 
"PS: HTTP baut praktisch auch für jede Seite/Datei/Bild eine neue Verbindung auf."

http://en.wikipedia.org/wiki/HTTP_persistent_connection


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

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