2016-04-26 13 views
1

Ich frage mich, ob es eine einfache Möglichkeit gibt zu wissen, ob eine Verbindung zu einem FTP-Server noch aktiv ist mit ftplib.Wissen, ob FTP noch mit ftplib verbunden ist

Also, wenn Sie eine aktive Verbindung wie folgt aus:

import ftplib 
ftp = ftplib.FTP("ftp.myserver.com", "admin", "pass123") 

gibt es so etwas wie das folgende Pseudo-Code, die abgefragt werden können, um zu überprüfen, ob die Verbindung noch aktiv ist?

Antwort

0

Sie könnten versuchen, etwas vom Server abzurufen und irgendwelche Ausnahmen abzufangen und zurückzukehren, ob es darauf basiert oder nicht.

Zum Beispiel:

def is_connected(ftp_conn): 
    try: 
     ftp_conn.retrlines('LIST') 
    except (socket.timeout, OSError): 
     return False 
    return True 

Dieses einfache Beispiel wird die ‚Liste‘ Ergebnisse zu stdout drucken, können Sie die von Ihrem eigenen Rückruf in die retrlines method


(Stellen Sie sicher, ändern Sie setzen Legen Sie eine Zeitüberschreitung in der anfänglichen FTP-Objektkonstruktion fest, da diese standardmäßig Keine ist.)

ftp = ftplib.FTP("ftp.gnu.org", timeout=5, user='anonymous', passwd='') 
+0

Oh, richtig, das ist eigentlich eine ziemlich einfache Art, das zu tun. Vielen Dank. –

Verwandte Themen