class Server(Thread): def __init__(self, sockAddress): Thread.__init__(self) self.sock, self.address = sockAddress self.fsock = EncapFramedSock(sockAddress) def run(self): print("new thread handling connection from", self.address) while True: try: fileName, contents = self.fsock.receive(debug) except: print("Error: File transfer was not successful!") self.fsock.sendStatus(0, debug) self.fsock.close() sys.exit(1) if debug: print("Received", contents) # Data not received. Exit system. if fileName is None or contents is None: print("Client ", self.address, " has disconnected") sys.exit(0) lock.acquire() if debug: time.sleep(5) fileName = fileName.decode() self.writeFile(fileName, contents) self.fsock.sendStatus(1, debug) lock.release() def writeFile(self, fileName, contents): if fileName is None: raise TypeError if contents is None: raise TypeError try: # Check if there is a directory to receive files. if not os.path.exists(PATH): os.makedirs(PATH) os.chdir(PATH) # New file to open. writer = open(fileName, 'w+b') writer.write(contents) writer.close() print("File %s received from %s" % (fileName, self.address) ) # Prints output to ensure the file was received. except FileNotFoundError: print("File Not Found Error: File %s not found" % fileName) # File not found error. Exit. self.fsock.Status(0, debug) sys.exit(1)
class Server(Thread): def __init__(self, sockAddress): Thread.__init__(self) self.sock, self.address = sockAddress self.fsock = EncapFramedSock(sockAddress) def run(self): print("new thread handling connection from", self.address) while 1: try: print("try statement 1 ********") fileName, contents = self.fsock.receive() print("done **********") except: print("Error: File transfer was not successful!") self.fsock.sendStatus(0) self.fsock.close() sys.exit(1) # data not received if fileName is None or contents is None: print ("Client ", self.address, " has disconnected") sys.exit(0) print("writing *********") lock.acquire() # write the file fileName = fileName.decode() self.writeFile(fileName, contents) self.fsock.sendStatus(1) lock.release() print("release *********") def writeFile(self, fileName, contents): if fileName is None: raise TypeError if contents is None: raise TypeError try: # check if dir exists to receive files if not os.path.exists(PATH): os.makedirs(PATH) os.chdir(PATH) # create file to write writer = open(fileName, 'w+b') writer.write(contents) writer.close() print("File %s received from %s" % (fileName, self.address)) except FileNotFoundError: print("File Not Found Error: File %s not found" % fileName) self.fsock.Status(0) sys.exit(1)