【发布时间】:2017-06-10 21:30:49
【问题描述】:
是否有任何主流压缩算法,例如snappy、zlib 或bzip 原生支持跨网络的流式数据?例如,如果我必须发送一个压缩的有效负载,那么我是否必须在发送消息之前手动添加有效负载的大小?或者是否有任何库提供 API 来判断给定 x 字节的消息是否完整?
【问题讨论】:
-
几乎按照定义,流式 API 将无法跟踪消息边界。这是调用者的责任。
-
@JamesKPolk 那么人们在消息之前对消息大小进行编码的通常方式是什么?手动整数编码?
-
如果只有一条消息,那么您可以阅读直到逻辑 EOF。否则,您可以为整数计数添加前缀,或使用一些唯一的分隔符。
标签: sockets compression zlib bzip2 snappy