1

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

谢谢您的帮助!

4

2 回答 2

1

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

所以:要么“按原样”发送原始字节 [],要么使用 GZipStream 之类的东西来尝试减小大小。请注意,这并不总是可行的,并且对于某些数据压缩工具可以增加大小。

于 2012-08-05T15:39:31.810 回答
0

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

于 2013-02-01T17:45:08.283 回答