用python解析protobuf数据,却遇到了tag had invalid wire type错误?

现在要用python去解析server端发过来的protobuf包,安装好protobuf之后,proto文件我也写好了,和server端是应该是一样的,因为是从team的gitlab上拿下来的。然后建立socket,拿数据,recv之后我直接w+到一个文件里。然后rb这个文件,用protobuf自带的函数,ParseFromString()去解析,就报tag had invalid wire type错误,一头雾水,查了一整天,网上也没有很好的解决办法,就是解析不出来,总是报这个错。。。
会不会是二进制文件大小端存储的问题?猜测,实在想不出什么原因,另外一个同事用java去解析,就解析出来了.....

阅读 17.5k
2 个回答

你试着不存文件,直接ParseFromString看看能不能解析成功。会不会是传输的过程中二进制数据发生了变化,但是java解析成功了,比较奇怪。可让server也写入文件,然后和你的写入的文件比较一下大小。看看是不是一样。
此异常google了一下,参考https://groups.google.com/for...

新手上路,请多包涵

查看是否配置半包解析

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题