繁体   English   中英

Protobuf和非阻塞消息发送/接收

[英]Protobuf and Non-blocking message send/recv

我正在使用protobuf和非阻塞libevent套接字库开发消息传递接口。 由于具有非阻塞属性, libevent的读取回调可能在消息未完成的某些点(例如,每接收到4096个字节)被调用。 这意味着我必须编写另一个表示每个消息大小的包装器/标头,以便可以将消息正确地解析回protobuf对象。 有更好的解决方案吗? 还是protobuf提供API来处理这种情况?

不,没有更好的解决方案。 实际上,即使使用阻塞I / O,您也需要写一个标头来指示大小,因为Protobuf并不是自定界的(默认情况下,protobuf解析器将始终读取直到EOF!)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM