添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
python 使用ParseFromString反序列化bytes报错

google.protobuf.message.DecodeError: Error parsing message
python 使用socket测试protobuf
以下为解包代码

def recv(self):
    data = self.client.recv(20000)
    print("返回包总长度:", len(data))
    """固定值"""
    header = struct.unpack('!i', data[0:4])[0]
    moduleId = struct.unpack('!h', data[4:6])[0]
    cmdId = struct.unpack('!h', data[6:8])[0]
    resultId = struct.unpack('!i', data[8:12])[0]
    messageLen = struct.unpack("!i", data[12:16])[0]
    messagePushLen = struct.unpack('!i', data[messageLen+16:])[0]
    print(header, moduleId, cmdId, resultId, messageLen, messagePushLen)
    loginResp = pb2.MsgRespUserLogin()
    print(loginResp.ParseFromString(data[16:messageLen + 16]))
  • 代码运行到 print(loginResp.ParseFromString(data[16:messageLen + 16]))时报错,报错如下:
    image1220×922 101 KB
  • 打断点,可以看到正确的数据,但是显示不完全
    image1889×924 138 KB 点击view显示如下
    image1614×956 137 KB
  •