AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Beste Vorgehensweise für permanente FTP-Verbindung?
Thema durchsuchen
Ansicht
Themen-Optionen

Beste Vorgehensweise für permanente FTP-Verbindung?

Ein Thema von ernschd · begonnen am 3. Aug 2012 · letzter Beitrag vom 11. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
ernschd

Registriert seit: 16. Jan 2008
165 Beiträge
 
Delphi XE8 Professional
 
#1

Beste Vorgehensweise für permanente FTP-Verbindung?

  Alt 3. Aug 2012, 13:07
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
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

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

  Alt 3. Aug 2012, 14:24
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 )
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 3. Aug 2012, 14:40
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

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

  Alt 3. Aug 2012, 14:53
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

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

  Alt 3. Aug 2012, 17:09
Wenn es um Millisekunden geht, präferiere ich eine bereits geöffnete Verbindung.
Sonst eher nicht.
  Mit Zitat antworten Zitat
schotti65

Registriert seit: 3. Sep 2010
Ort: Berlin
53 Beiträge
 
Delphi XE5 Enterprise
 
#6

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

  Alt 7. Feb 2014, 19:19
@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...
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#7

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

  Alt 8. Feb 2014, 09:07
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...
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
ernschd

Registriert seit: 16. Jan 2008
165 Beiträge
 
Delphi XE8 Professional
 
#8

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

  Alt 11. Feb 2014, 10:46
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.
  Mit Zitat antworten Zitat
schotti65

Registriert seit: 3. Sep 2010
Ort: Berlin
53 Beiträge
 
Delphi XE5 Enterprise
 
#9

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

  Alt 11. Feb 2014, 12:36
Hört sich vernünftig an.
Prüfen - einfach nur "if xyz.connected..." oder fängst Du geg.falls den Abbruch irgendwie explizit ab?
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#10

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

  Alt 11. Feb 2014, 14:01
"PS: HTTP baut praktisch auch für jede Seite/Datei/Bild eine neue Verbindung auf."

http://en.wikipedia.org/wiki/HTTP_persistent_connection
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:35 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