C++相当于 SerializeWithLengthPrefix
我使用协议缓冲区 (protobuf-net) 使用套接字(TcpListener 和 TcpClient)构建了一个通信库,并且工作正常,但现在同事需要编写一个库来使用 C++ 与我的软件进行通信。
事实证明,我正在使用 Serializer.NonGeneric.SerializeWithLengthPrefix
和 Serializer.NonGeneric.TryDeserializeWithLengthPrefix
。
protobuf C++ 库中是否有等效的函数?如果没有,有人知道如何实现它,或者已经实现分享吗?
I built a communication library using Protocol Buffers (protobuf-net) using Sockets (TcpListener and TcpClient) and it is working fine, but now a co-worker needs to write a library to communicate with my software using C++.
Turns out that I'm using the Serializer.NonGeneric.SerializeWithLengthPrefix
and Serializer.NonGeneric.TryDeserializeWithLengthPrefix
.
Are there equivalent functions in the protobuf C++ libraries? If not, anyone knows how to implement it, or have it implemented to share?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我对 C++ API 不太熟悉;但如果您首先将数据写入缓冲区,那么长度前缀本身就非常简单,特别是如果您使用固定宽度 32 位编码(而不是 base-128 可变长度)。另请参阅 google-groups 论坛上的此帖子。
I'm not hugely familiar with the C++ API; but the length prefix itself is pretty simple if you write the data to a buffer first, especially if you use the fixed-width 32-bit encoding (rather than base-128 variable-length). See also this thread on the google-groups forum.