Wie bei IndyFTP abfragen ob Firewall blockt? (Titel geändert) (gelöst)



  • Hallo,

    ich wollte gerade eine Verbindung mittels IndyFTP zu einer Homepage herstellen und mit dem Programm die index.php downloaden...

    FTP->Host=server_tmp.host.c_str();
    FTP->User=server_tmp.user.c_str(); 
    FTP->Password=server_tmp.passwort.c_str(); 
    FTP->Port=21;  
    FTP->TransferType=ftBinary; 
    FTP->Connect();
    FTP->Get("index.php","index.php",true);
    

    ohne FTP->Get("index.php","index.php",true); funktioniert das Programm, aber mit hängt sich das Programm auf...aber nur unter Windows7, auf meinen Lappi funktioniert es...
    Weiß wer woran das liegen kann?

    Edit: Put(); upload funktioniert auch nicht...

    MfG
    Gustl



  • Gelöst: Firewall hat blockert... 🙄

    Edit:
    Kann man das im Programm irgendwie abfangen, damit es sich niht aufhängt? try und catch funktioniret hier nicht.



  • Wäre hier ein Thread angebracht, den ich dann nach ein paar sekunden terminier?

    Oder kann man bevor man put oder get aulöst auf einer blockierung durch zb. einer firewall abfragen?



  • Weiß keiner einen Rat? Oder ist das wieder so eine Frage die ich mir selbst beantworten kann? 🙂

    Kommt schon, ihr wisst doch bescheid...! 😉



  • Hallo

    Eventuell reicht es ja schon aus, die Eigenschaft TIdFTP::ReadTimeout zu setzen, damit die Komponente den Verbindungsversuch automatisch nach einer gewissen Zeit abbricht.
    Ansonsten eben TTimer verwenden, um selber einen Timeout zu integrieren. Ob du das zusätzlich noch in einen Thread auslagerst, ist dir überlassen.

    bis bald
    akari



  • Hallo,

    TIdFTP::ReadTimeout hört sich sehr gut an.

    Danke dir.

    MfG Gustl



  • ConnectTimeout scheint noch besser zu passen, muss aber im Code gesetzt werden.

    Alternativ zum Auslagern in Threads könntest du auch ein TIdAntiFreeze auf die Form packen, damit sollte diese auch während des Verbindungsversuches bedienbar bleiben.

    PS:
    Bitte denk dran, die Überschrift hier ggf. passend zu korrigieren.


Anmelden zum Antworten