def connectionMade(self): client = Packet("CLIENT", self.__client) self.transport.write(json.dumps(client.__dict__) + "%") with open('../data/friends.json', 'r') as fp: friends = json.load(fp) friendsLine = json.dumps(friends) packets = Packet.pack("JSON", friendsLine) for packet in packets: data = json.dumps(packet.__dict__) self.transport.write(data + "%")
def dataReceived(self, data): """ As soon as any data is received, write it back. """ packets = filter(None, data.split("%")) packets = [json.loads(packet) for packet in packets] for packet in packets: if packet["_header"] == "CLIENT": self._client = packet["_payload"] elif packet["_header"] == "JSON": self._buffer = self._buffer + packet["_payload"].rstrip() if self._buffer.endswith('}'): friends = json.loads(self._buffer) friends_u = update_db(friends, self._client) friendsLine = json.dumps(friends_u) packets = Packet.pack("JSON", friendsLine) for packet in packets: data = json.dumps(packet.__dict__) self.transport.write(data + "%") self._buffer = ""
import socket from packet import Packet sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #sock.connect(("68.62.87.97",48011)) sock.connect(("127.0.0.1",8022)) data1={} data2={} data1["request_type"]=3 data1["room"]="Hall" msg1=Packet.pack(data1) data2["request_type"]=4 data2["target"]="room" data2["room"]="Hall" data2["message"]="hello world" msg2=Packet.pack(data2) sock.send("%8s"%(hex(len(msg1))[2:])); sock.send(msg1) sock.send("%8s"%(hex(len(msg2))[2:])); sock.send(msg2) while(1): head = sock.recv(8); if head: size=int("0x"+head.strip(),16); data = sock.recv(size); ary=Packet.unpack(data) print ary