Streaming zlib,如何解压缩压缩数据块流?

Streaming zlib,如何解压缩压缩数据块流?,streaming,zlib,Streaming,Zlib,我有一个关于通过网络传输压缩数据的问题 数据大小约为几百MBs。我的计划是将数据分成1MB块,并用zlib压缩每个块,然后通过网络传输压缩的数据。在网络的另一端,数据将由zlib解压 我的问题是,由于我将压缩数据流化,因此不会有关于每个压缩数据块在流中的开始和结束位置的信息。我不确定zlib是否可以解压缩这样的压缩数据流 如果zlib可以,请告诉我在放气/充气方法中应该使用什么冲洗模式 谢谢 不清楚为什么要将数据分成块,或者为什么需要进行任何特殊刷新。如果您只是指将数据以块的形式提供给zlib,

我有一个关于通过网络传输压缩数据的问题

数据大小约为几百MBs。我的计划是将数据分成1MB块,并用zlib压缩每个块,然后通过网络传输压缩的数据。在网络的另一端,数据将由zlib解压

我的问题是,由于我将压缩数据流化,因此不会有关于每个压缩数据块在流中的开始和结束位置的信息。我不确定zlib是否可以解压缩这样的压缩数据流

如果zlib可以,请告诉我在放气/充气方法中应该使用什么冲洗模式


谢谢

不清楚为什么要将数据分成块,或者为什么需要进行任何特殊刷新。如果您只是指将数据以块的形式提供给zlib,那么zlib通常就是这样使用的。zlib不关心如何向它提供数据——大数据块、小数据块、一次一个字节、一个大数据块等,都不会改变压缩结果

刷新确实会改变压缩结果,根据刷新频率和刷新方式,会略微或显著降低压缩结果


当您希望确保在压缩数据的已知边界处完全接收到部分数据时,或者如果您希望在未接收到全部数据时能够恢复部分数据时,可以使用刷新。如果您使用的策略是必须的,则可以在主机和远程机之间制定协议,例如:

02 123456 the-compressed-data 654321 the-compressed-data
这3个数字是: 1.数据块的数量,这里是2个数据块 2.第一个块的字节数 3.第二个块的字节数
分别。

在vnc协议中,它们似乎在屏幕更新后通过同步启动一个永无止境的zlib流。在本例和OP例中,我希望同步刷新。对吗?