Looping in FTP fail connection Pyth3.6
我正在使用一个ftp服务器,当我对它没有响应时,比如互联网故障或其他什么情况时,我想尝试不断地连接它。我证明了在正常情况下,我能够成功连接,但我现在想要的是在一段时间内循环连接,因为在尝试连接几秒钟后,Jupyter笔记本会给我一个错误并停止程序。
目标是能够不断尝试连接到ftp服务器,直到它连接,然后在a==1时跳到下一个语句:因此,由于我有一个jupyter笔记本问题,我尝试的是在5秒后将if放在何处,它将中断循环。
有人有其他解决办法吗?它仍然不起作用。用于阅读的THX:)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | while a==0: print('starting 1rst loop') while True: timeout = time.time() + 5 # 5 seconds from now while a==0 : print("Connecting to FTP Server") #domain name or server ip: ftp = FTP('ftpIP') #Passw and User ftp.login(user=XXX, passwd = XXX) print('Connected to the FTP server') ftp.quit() ftp.close() a= a+1 if a==0 and time.time() > timeout: timeout=0 break while a==1: |
虽然我不太明白你的意思,但这看起来怎么样?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import time import socket from ftplib import FTP def try_connect(host, user, passwd): print('Connecting to FTP Server') ftp = FTP() try: # domain name or server ip ftp.connect(host, timeout=5) except socket.error: print('Connect failed!') return False # Passwd and User ftp.login(user, passwd) print('Connected to the FTP server') ftp.quit() ftp.close() return True def main(): while True: try_connect('192.168.1.1', user='anonymous', passwd='') print() time.sleep(5) if __name__ == '__main__': main() |
它每5秒尝试连接一次ftp并输出结果。