繁体   English   中英

如何使用protobuf-net序列化字节数组?

[英]How to use protobuf-net to serialize a byte array?

是否可以使用protobuf-net序列化字节数组,然后通过套接字将其发送以对客户端进行反序列化? 我正在寻找一种压缩/减少发送数据的有效方法。 有人告诉我protobuf-net是最好的方法。 知道我会怎么做吗?

谢谢您的帮助!

Protobuf-net是一个序列化程序 ,旨在将复杂的对象结构简化为可以通过电线发送的基本表示形式。 它不使用压缩。 如果要压缩,请使用类似GZipStream的工具。 实际上,byte []的protobuf表示是:数据的长度(作为varint),后跟原始的byte []。 没有protobuf的实现会减少这种情况。

因此:要么按原样发送原始byte [],要么使用类似GZipStream的方法尝试减小大小。 请注意,这并非总是可能的,并且对于某些数据压缩工具,它可能会增加大小。

通过使用7Zip( http://www.7-zip.org/sdk.html )的LZMA SDK压缩/解压缩了protobuf对象的字节数组表示,我们得到了很大的改进。 例如,一个1114字节的数组缩小为740。但是正如Marc所说,您的里程可能会有所不同。

暂无
暂无

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

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