def connection_handler(connection): clock = Clock(fps=30) while True: clock.tick() raw_data = connection.recv(1024).decode() if not raw_data: continue else: for json_data in raw_data.split('\x00'): if json_data: # print('json_data', json_data) dispatch(connection, json_data)
def main(): connection = context.wrap_socket(socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)) connection.connect((HOST, PORT)) thread = threading.Thread(target=connection_handler, args=(connection,)) thread.daemon = True # exit the thread when the main thread terminates thread.start() authentication(connection) clock = Clock(fps=10) while not client.logged_in: clock.tick() chat_logic(connection)
def client_listener(): clock = Clock(fps=30) while True: clock.tick() try: connection, client_address = server.accept() connection.setblocking(False) setup(connection=connection, client_address=client_address) except BlockingIOError: pass for client in clients: try: handle(connection=client.connection) finish(connection=client.connection) except BlockingIOError: continue
def connection_handler(connection): clock = Clock(fps=30) while True: clock.tick() try: raw_data = connection.recv(1024).decode() if not raw_data: continue else: for json_data in raw_data.split('\n'): if json_data: # print('json_data', json_data) dispatch(connection, json_data) except socket.error as e: if e.args[0] == errno.EWOULDBLOCK: continue raise