def encode(self, msg): if msg.receiverName: receiver = struct.pack('>III', msg.receiver.id, msg.receiver.remote, msg.receiver.time); else: receiver = struct.pack('>I'+str(len(msg.receiverName))+'s', len(msg.receiverName), msg.receiverName); sender = struct.pack('>III', msg.sender.id, msg.sender.remote, msg.sender.time); msgName = MsgFactory.getClassName(msg); msgName = struct.pack(('>I%ds' % len(msgName)), msgName); data = msg.encode(); data = struct.pack(('>I%ds' % len(data)), data); alldata = '%s%s%s%s' % (receiver, sender, msgName, data); return struct.pack(('>I%ds' % len(alldata)), alldata);
def run(self): # override self.gameClock = time.time() while not self.isStop: currTime = time.time() deltaTime = currTime - self.gameClock if deltaTime > 0.0166666666667: # 60FPS on server self.update(deltaTime) sendData = msg.encode(self.serialize()) try: self.conn.send(sendData) except: print "game.py send data exception" self.gameClock = currTime self.conn.close()
def broadcast(self, msg): print('broad cast' + msg) for addr in self.nameDict: print(addr) self.chat_Socket.sendto(msg.encode('utf-8'), addr)
def sendMsgToSock(sock, message): # send msg to client socket try: sock.send(msg.encode(message)) except: pass
def encode(self, msg): data=''.join((struct.pack('>I'+str(len(x))+'s', len(x), x) for x in (MsgFactory.getClassName(msg), msg.encode()))); return struct.pack('>I'+str(len(data))+'s', len(data)+4, data);