![]() |
Indy-Connect: Fehlermeldung ist schneller als Verb.aufbau
Hallo Leute,
ich habe ein kleines Problem mit Indy-FTP. Vielleicht kann mir jemand weiterhelfen. Auf meinem PC mit direkter Anbindung ans Internet gibt es mit nachfolgendem Code keine Problem. Verbindung ins Internet wird manuell vorher hergestellt und per Download-Button vom Programm eine bestimmte Datei einer fest eingestellten Adresse aus dem Netz per FTP geladen und weiter verarbeitet.
Code:
Beim Anwender wird aber zuerst über einen Proxyserver eine Verbindung aufgebaut und das dauert wohl ein wenig zu lange. Es gibt eine Fehlermeldung, daß die Verbindung nicht hergestellt werden kann.
....
try IdFTP1.Username := edFtpUser.Text; IdFTP1.Password := edFtpPW.Text; IdFTP1.Host := edFtpServer.Text; IdFTP1.Connect; IdFTP1.ChangeDir(edFtpDir.Text); finally if IdFTP1.Connected then begin ..... Nach zwei-drei Mal Clicken auf den Download-Butten in meinem Programm funktioniert das dann doch. Gibt es eine Möglichkeit in etwa der Art:
Code:
mfg
zaehler := 30; // Sekunden
verbindung_hergestellt := false; repeat IdFTP1.Connect; verbindung_hergestellt := IdFTP1.Connected; if not verbindung_hergestellt then zaehler := zaehler - warte_eine_sekunde; until verbindung_hergestellt or (zaehler = 0); eddy |
Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
Bringts was das Timeout zu ändern?
Rattze |
Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
Hallo Ratte,
es gibt kein IdFTP1.TimeOut mfg eddy |
Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
bei idftp1.connect kann man das Timeout mit angeben (idftp1.connect(True, DeineTimeoutZeit in Millisekunden));
|
Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
Hallo,
danke für die Hinweise: @SirThornberry: Ich habe die Variante
Code:
ausprobiert, bin aber sofort mit Fehler # 10065 rausgeflogen.
IdFTP1.Connect(true, edChkTime.ValueInt * 1000); // mit edChkTime.ValueInt = 30
Nachfolgende Version hat zumindest auf meinem PC funktioniert:
Code:
Ist vielleicht nicht die ideale Lösung, aber wenn's hilft ....
....
zel := 0; repeat inc(zel); try IdFTP1.Connect; except Label.Caption := IntToStr(zel) + '. Versuch'; Label.Refresh; end; until IdFTP1.Connected or (time > dt); //or (zel > 3) or (clock.Tag = 0); .... Ob damit mein Problem gelöst ist, erfahre ich aber erst nächste Woche. mfg eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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