def connect_to_world(self, addr=worldaddr): self.worldsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.worldsocket.connect(addr) request = amazon_pb2.AConnect() request.worldid = self.worldid wh = request.initwh.add() wh.id = 1 wh.x = 1 wh.y = 1 request.isAmazon = True print(request) send_request(self.worldsocket, request) while True: whole_message = recv_response(self.worldsocket) response = amazon_pb2.AConnected() try: response.ParseFromString(whole_message) except: continue print(response) print("World id is %d" % response.worldid) break
def Recv_Connected(recv_msg): msg = amazon_pb2.AConnected() msg.ParseFromString(recv_msg) if (not msg) or (not msg.ListFields()): print("\033[33mrecv_msg is empty\033[0m") if msg.HasField('error'): print("\033[31mError: \033[0m", msg.error)
def connectWorld(worldconnect): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) world_server_ip = socket.gethostbyname(WHOST) s.connect((world_server_ip, WPORT)) send_message(s, worldconnect) connectResponse = amazon_pb2.AConnected() connectResponse.ParseFromString(recv_message(s)) print("Worldid: ") print(connectResponse.worldid) print("\n") print("Result: ") print(connectResponse.result) print("\n") return s
connect_msg = amazon_pb2.AConnect(); connect_msg.worldid = 1002; # w1 = connect_msg.initwh.add() # w1.x = -664 # w1.y = -1081 print "msg is " + connect_msg.__str__(); sc = connect_msg.SerializeToString() size = len(sc); delimiter = protobuf_encoder._VarintBytes(size) s.send(delimiter); s.send(sc) # send msg response = amazon_pb2.AConnected() head_byte = s.recv(4) (msg_length, msg_pos) = protobuf_decoder._DecodeVarint32(head_byte, 0) print(msg_length, msg_pos) data = s.recv(msg_length) command_msg = amazon_pb2.ACommands() buy = command_msg.buy.add() buy.whnum = 0 product = buy.things.add() product.id = 123 product.description = "sample products" product.count = 10 # topack = command_msg.topack.add()