I'm working on the internet connection programming, including Server and Client Socket, FTP, SMTP. But there is an error that depending on internet connection condition that I must handle it. But I don't know what the ConnnectionAbortedError
, ConnectionRefusedError
and ConnectionResetError
do. And whether to catch an exception.
I definitely understand that TimeoutError
is catch for the connection is not respond for long time then raise an error.
But I can't identify what are the three connection errors on above do.
FTPManager.py module for using in another module.
from ftplib import *
blockSize = 1024
host = "localhost"
instance = None
def login():
global instance
while True:
try:
instance = FTP(host)
instance.login(user="NetPro",passwd="12345678")
instance.retrlines("LIST")
instance.cwd("Final Assignment")
print("FTP Connected!")
break
except TimeoutError:
print("FTP Login Timeout Error. Retrying...")
def logout():
global instance
instance.quit()
def changeDirectory(directory):
global instance
instance.cwd(directory)
instance.retrlines("LIST")
def listAllFiles():
global instance
return instance.nlst()
def isFileExists(filename):
global instance
fileList = instance.nlst()
if filename in fileList:
return True
return False
def downloadFile(filename):
while True:
try:
with open(filename,"wb") as f:
instance.retrbinary("RETR " + filename, f.write, blockSize)
print("Download file " + filename + " completed.")
break
except ConnectionRefusedError:
print("FTP Connection has been aborted.")
login()
def uploadFile(filename):
while True:
try:
with open(filename,"rb") as f:
instance.storbinary("STOR " + filename, f, blockSize)
print("Upload file " + filename + " completed.")
break
except ConnectionAbortedError:
print("FTP Connection has been aborted.")
login()
login()
The error exception is also used in SMTPManager.py for handling the internet connection error.
Thank you. Any help is appreciated.