コード例 #1
0
 def handle_login(self, conn, addr):
     '''Handle a client connection's attempt to login'''
     received_data = conn.recv(1024)
     while received_data:
         credentials = DataManager.decode_object(received_data)
         logged_in_status = self.login_manager.login(credentials, addr)
         conn.send(DataManager.encode_object(logged_in_status))
         
         if logged_in_status == LoginStatus.SUCCESS:
             # Client logged in - listen for requests from the client
             print(f'[{addr}, {credentials["username"]}]: Logged in.')
             self.handle_requests(conn, addr, credentials['username'])
         else:
             print(f'[{addr}, {credentials["username"]}]: Attempted login.')
         
         try:
             # Listen for more attempts from the client
             received_data = conn.recv(1024)
         except:
             # Connection has been closed due to logout
             received_data = None