【发布时间】:2017-11-05 23:25:40
【问题描述】:
我在 c#、.net core 2 和协议缓冲区方面完全是新手,但我必须使用这 3 种技术来完成个人项目(服务器/客户端架构)。我对多条消息中的序列化/反序列化有一些疑问。 我已经看到了: https://developers.google.com/protocol-buffers/docs/techniques#streaming 所以我知道这需要一种特殊的技术。在进行了一些谷歌会话之后,我发现了一些关于 c++ 中的 put 和 pop 限制的信息,但我还没有看到 c# 上的文档。
我还有一个问题,谷歌协议缓冲区是否处理得很好?我的套接字是用 select 监控的,所以当我想阅读我的消息时(使用https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/message-parser#class_google_1_1_protobuf_1_1_message_parser_1a110e5d9bc61837e369e5deb093f59161) 我不确定 protobuf 将如何停止读取(我不想读取套接字上可用的数据,因为它会使我的服务器阻塞......) 它管理它吗?谢谢...
【问题讨论】:
-
protobuf 根本不处理消息边界。您需要自己实现消息拆分。
-
编辑:我发现了这个,stackoverflow.com/questions/21232689/… 看起来很棒,谢谢大家。
标签: networking error-handling protocol-buffers blocking nonblocking