[英]Unable to Deserialize in C# using protobuf-net
我正在使用协议缓冲区在c ++和c#客户端服务器应用程序之间发送和接收数据。 我正在用protobuf-net解决这个问题。 我有两个原型文件,一个请求命令和一个响应命令。 我能够将命令从C#客户端发送和反序列化到C ++服务器。 但是我无法在C#中反序列化。 我虽然在c#中获取字节数据,但得到的响应命令为空。 考虑代码如下所示:
proto.ResponseCommand rsp = new proto.ResponseCommand ();
using (var data = new MemoryStream ())
{
data.write (buffer,0,buffer.length);
rsp = Serializer.Deserialize<proto.ResponseCommand> (data);
}
我在缓冲区中获得了以字节为单位的数据,但在响应命令中未将其反序列化。
我终于弄明白了。 我没有考虑到client.Read命令返回的接收字节的实际大小。 之后,我还要倒带MemoryStream,这要感谢@neil danson
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.