2016-04-26 15 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に「LIST」結果を印刷します、あなたがいることを確認してください(retrlines method


に独自のコールバックを置くことによってそれを変更することができます最初のFTPオブジェクト構築でタイムアウトを設定します。デフォルトはNoneであるため、タイムアウトを設定します)。

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

ああ、それは実際にそれを行うのは非常に簡単な方法です。ありがとう。 –

関連する問題