2016-04-26 75 views
1

我想知道是否有一種簡單的方法可以知道使用ftplib是否仍然有效地連接到FTP服務器。瞭解FTP是否仍與ftplib連接

所以,如果你有一個這樣的活動連接:

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

有類似的東西可以查詢到檢查連接仍然有效以下僞代碼?

if ftp.is_connected() == True: 
    print "Connection still active" 
else: 
    print "Disconnected" 

回答

0

你可以嘗試從服務器獲取的東西,並捕獲任何異常,並返回它是否是基於該連接。

例如:

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

這個簡單的例子將打印的「列表」結果到stdout,你可以把你自己的回調到retrlines method


(請確保您更改請在初始FTP對象構造中設置超時,因爲默認設置爲無)。

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

哦,對,這實際上是一個非常簡單的方法。謝謝。 –