![]() |
TIdTrivialFTP Client macht kein RETRY
Hallo Zusammen,
ich möchte mit meinem Programm eine Datei (5-10MB) zu einem TFTP-Server senden. Leider bricht die Kommunikation öfter mit einer Exception der Klasse EIdTFTPException mit der Meldung 'Zeitüberschreitung' ab. Mit dem TFTP-Client von Win7 klappt die Übertragung jedes mal. Ich habe mir den Datenverkehr mit Wireshark angeschaut: Der Windows-TFTP-Client sendet einige Pakete doppelt, wenn er keine Antwort vom Server erhält. Der Indy-Client mach dies NICHT. Wenn keine Antwort vom Server kommt, dann wird nach der Timeoutzeit die Exception geworfen. Hier kann man lesen, dass dies wohl in den Indy-Komponenten nicht unterstützt wird: ![]() --> Der Post ist von 2012 :shock: Hat jemand eine Idee, wie ich einen robusten Client in meinem Programm realisieren könnte? Gibt es gute Alternativen zu Indy? Sowohl freie, als auch kostenpflichtige Lösungen sind willkommen. :wink: Viele Grüße, Poolspieler |
AW: TIdTrivialFTP Client macht kein RETRY
Moin...8-)
Zitat:
Das könnten entscheidende Zeilen sein:
Delphi-Quellcode:
FFTP:= TIdFTP.Create(nil);
FFTP.TransferType:= ftBinary; FFTP.Passive:= True; |
AW: TIdTrivialFTP Client macht kein RETRY
Hallo haentschman,
vielen Dank für Deine Antwort. Ich verwende das TFTP-Protokoll, nicht das FTP-Protokoll (kann der Server nicht). Oder kann man mit dem FTP-Client auch auf einen TFTP-Server zugreifen? Viele Grüße, Poolspieler |
AW: TIdTrivialFTP Client macht kein RETRY
Zitat:
Auf die Schnelle ein paar Info´s ohne sie gelesen zu haben: ![]() |
AW: TIdTrivialFTP Client macht kein RETRY
Warum benutzt du überhaupt ein für dein Vorhaben ungeeignetes Protokoll?
Zitat:
|
AW: TIdTrivialFTP Client macht kein RETRY
Hallo Zusammen,
also, der Server ist ein Embedded System mit geringen Resourcen. Deshalb gibt es erstmal keinen FTP, sondern den kleinen Bruder TFTP. Für meine Anwendung wäre FTP absolut oversized. Sollte ich wirklich keinen guten Client finden, dann werde ich mein eigenes Protokoll (mit eigenem Handshake) stricken. Das wollte ich aus Zeitgründen möglichst umgehen. Die wichtigsten Unterschiede FTP vs. TFTP: FTP ist session-oriented (zuerst Verbindungsaufbau, dann Datenübertragung) - TFTP nicht TFTP hat viel weniger Funktionen (nur PUT und GET) - man keinen Verzeichnisinhalt ausgeben oder in verschiedene Verzeichnisse wechseln, oder diese anlegen/löschen TFTP hat kein User-Management - also keine Authentifizierung mit User/Passwort FTP läuft auf Port 20 (Daten) und Port 21 (Connection) - TFTP läuft auf Port 69 Tante Google habe ich natürlich schon vor meinem ersten Post bemüht. Die alte Dame hat leider (noch) keine guten Ergebnisse für mich finden können. Mal sehen, vielleicht findet Sie ja noch was :xmas: Viele Grüße, Poolspieler |
AW: TIdTrivialFTP Client macht kein RETRY
Und TFTP für deinen Zweck nicht geeignet.
|
AW: TIdTrivialFTP Client macht kein RETRY
Hallo Luckie,
ich bin da anderer Meinung. Das Protokoll ist dafür geeignet, gelegentlich Dateien zu einem Embeddedsystem zu senden. Nur der Indy-Client ist nicht dafür geeignet. Mit dem Windows(7) Client würde es ja bestens funktionieren. Wir müssen hier aber auch nicht diskutieren, ob das Protokoll geeignet ist, sondern ob es einen Client gibt, der die RETRY-Funktion unterstützt. BTW: Ich bin gerade dran, mein eigenes Protokoll dafür zu schreiben. Das ist dann noch resourcenschonender als TFTP. Macht aber - aus meiner Sicht unnötige - zusätzliche Arbeit... |
AW: TIdTrivialFTP Client macht kein RETRY
Man könnte natürlich auch versuchen das eigentliche Problem zu beheben.
Die schlechte Netzwerkverbindung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 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