import socketserver import pickle from collections import namedtuple from enums import MessageEnum, MOVE_SIZE from game import Board, Player BOARD_BOUNDS = (1000, 1000) Message = namedtuple('Message', ['type', 'data']) board = Board(bounds=BOARD_BOUNDS) board.fill_cells((BOARD_BOUNDS[0] + BOARD_BOUNDS[1]) // 4) clients = {} class UDPHandler(socketserver.BaseRequestHandler): def send_data(self, data): socket = self.request[1] socket.sendto(pickle.dumps(data), self.client_address) def get_message(self): raw_message = pickle.loads(self.request[0]) return Message(raw_message['type'], raw_message.get('data')) def handle(self): global clients global board message = self.get_message() if message.type == MessageEnum.CONNECT: