【发布时间】:2011-12-29 06:41:48
【问题描述】:
我在使用 TCP 的 C/S 网络程序中使用“protobuf”。
这是我给客户的步骤:
1、将数据打包成一个'protobuf'
2、获取包的字节大小并构造一个长度前缀帧
3、将frame+pack写入socket
然后是服务器:
1、从socket中读取Length-prefix frame,得到长度N
2、从socket中读取N个字节并将数据填充到protobuf实例中
3、通过“key”s从protobuf中获取“value”s
我觉得这似乎有点复杂,是否有某种自动生成的 protobuf 长度前缀帧,那么我不需要自己构造一个。或者我可以做些什么来使代码更干净?
【问题讨论】:
-
您的问题模棱两可/不清楚。你在使用 TCP 吗? UDP?知识产权?或其他一些网络协议?很难说 protobuf 是什么。它是一个结构还是只是一个数据块?大多数 C/S 应用程序需要一些帮助来确定要发送或接收的数据的完整性。您需要更具体并显示代码。
-
感谢您的建议,我会说得更清楚。 'protobuf' 特指谷歌开源项目。
标签: networking network-programming protocol-buffers network-protocols