【发布时间】:2014-06-16 19:53:45
【问题描述】:
我正在构建一个带有套接字通信的 C# 服务器和 python 客户端应用程序。服务器将序列化的对象列表发送到客户端,但我不知道(也找不到)如何在 python 中反序列化列表。任何帮助将不胜感激。
【问题讨论】:
标签: python protocol-buffers protobuf-net
我正在构建一个带有套接字通信的 C# 服务器和 python 客户端应用程序。服务器将序列化的对象列表发送到客户端,但我不知道(也找不到)如何在 python 中反序列化列表。任何帮助将不胜感激。
【问题讨论】:
标签: python protocol-buffers protobuf-net
好的,如果有人感兴趣,我找到了解决方案。诀窍是创建一种新的消息类型并重复添加原始消息类型。方法如下
message TransactionPackets {
repeated TransactionPacket packet = 1;
}
message TransactionPacket {
required int32 trans_id = 1;
required string user_id = 2;
required int64 date = 3;
}
现在我可以通过调用 TransactionPackets.ParseFromString() 简单地反序列化对象列表
【讨论】:
检查一下:
“Protocol Buffer 有线格式不是自定界的,因此协议缓冲区解析器无法自行确定消息的结束位置。解决此问题的最简单方法是在编写消息本身之前写入每条消息的大小. 当您读回消息时,您会读取大小,然后将字节读入单独的缓冲区,然后从该缓冲区进行解析。”
https://developers.google.com/protocol-buffers/docs/techniques
【讨论】: