Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy-Connect: Fehlermeldung ist schneller als Verb.aufbau (https://www.delphipraxis.net/30946-indy-connect-fehlermeldung-ist-schneller-als-verb-aufbau.html)

eddy 1. Okt 2004 15:06


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:
  ....
  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
    .....
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.
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:
   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);
mfg
eddy

Ratte 1. Okt 2004 15:43

Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
 
Bringts was das Timeout zu ändern?

Rattze

eddy 1. Okt 2004 16:23

Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
 
Hallo Ratte,

es gibt kein IdFTP1.TimeOut

mfg
eddy

SirThornberry 1. Okt 2004 16:27

Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
 
bei idftp1.connect kann man das Timeout mit angeben (idftp1.connect(True, DeineTimeoutZeit in Millisekunden));

eddy 1. Okt 2004 18:56

Re: Indy-Connect: Fehlermeldung ist schneller als Verb.aufba
 
Hallo,

danke für die Hinweise:

@SirThornberry:

Ich habe die Variante
Code:
IdFTP1.Connect(true, edChkTime.ValueInt * 1000); // mit edChkTime.ValueInt = 30
ausprobiert, bin aber sofort mit Fehler # 10065 rausgeflogen.

Nachfolgende Version hat zumindest auf meinem PC funktioniert:
Code:
    ....
    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);
    ....
Ist vielleicht nicht die ideale Lösung, aber wenn's hilft ....


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