我正在尝试从C++和Java中的文件读取/写入多个Protocol Buffers消息.谷歌建议在消息之前写长度前缀,但默认情况下没办法(我可以看到).
但是,2.1.0版中的Java API收到了一组"Delimited"I/O函数,显然可以完成这项工作:
parseDelimitedFrom
mergeDelimitedFrom
writeDelimitedTo
Run Code Online (Sandbox Code Playgroud)
有C++等价物吗?如果没有,那么Java API附加的大小前缀是什么,所以我可以用C++解析这些消息?
这些现在存在于google/protobuf/util/delimited_message_util.h
v3.3.0中.
我想使用protobuf在客户端和服务器之间来回发送消息.在我的情况下,我想从服务器向客户端发送任意数量的protobuf消息.如何在C++中快速构建它?
注意:在汇总了一个非常有用的Kenton Varda答案和Fulkerson对stackoverflow的回答之后,我写了这个问题和我的答案.其他人也提出了类似的问题并遇到了类似的障碍 - 请看这里,这里和这里.
我是protobuf和asio的新手,所以请随时纠正/建议改进,或提供自己的答案.