class GameServer: def __init__(self): HOST = '' # Symbolic name meaning the local host PORT = 8387 # Arbitrary non-privileged port s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) print 'listening' self.gameData = GameData() self.methods = {'getLandmarks':self.getLandmarks, 'addScore':self.addScore, 'startMultiplayerGame':self.startMultiplayerGame, 'addMultiplayerScore':self.addMultiplayerScore, } self.player1 = None self.player2 = None while True: print 'while true' conn, addr = s.accept() print 'Connected by', addr request = conn.recv(1024) if not request: break methodString, argument = request.split(',') method = self.methods[methodString] method(argument, conn) def getLandmarks(self, difficulty, conn): landmarks = self.gameData.getLandmarks(difficulty) landmarks = pickle.dumps(landmarks) data = 'yes@%s$' % landmarks print conn.sendall(data) def addScore(self, score, conn): self.gameData.addScore(score) scores = 'no@%s' % self.gameData.getScores() conn.send(scores) def startMultiplayerGame(self, player, conn): name, address = player.split('$') if self.player1 == None: self.player1 = Player(name, address) player2Server = Player2Server(self) player2Server.start() return '%s has joined the game, now waiting for a second player' % name if self.player2 == None: self.player2 = Player(name, address) def gotPlayer2(self): pass def addMultiplayerScore(self, score): pass