我正在使用 protobuf-net 制作一个应用程序,使用它通过网络发送/接收数据。
我很好奇某人是否/如何发送一些会使该行抛出异常的东西:
var message = Serializer.DeserializeWithLengthPrefix<ReceiveType>(
memoryStream, PrefixStyle.Fixed32);
我假设到目前为止我们已经检查过:
- (编辑)整个消息已经被接收并被放入 a
MemoryStream
中,这将用于反序列化消息(即没有流切断的风险)。 - 长度前缀包含一些合理的大小(即不会耗尽内存)
- 消息正文与前缀所承诺的一样大。
到目前为止,我已经尝试了各种可能性,最坏的情况是这些message
字段是null
或其他默认值,即使对于必填字段以及当消息正文包含随机乱码时也是如此。