POCO C++库学习和分析 -- 流 (三)

POCO C++库学习和分析 -- 流 (三)

ID:38495739

大小:129.67 KB

页数:15页

时间:2019-06-13

POCO C++库学习和分析 -- 流 (三)_第1页
POCO C++库学习和分析 -- 流 (三)_第2页
POCO C++库学习和分析 -- 流 (三)_第3页
POCO C++库学习和分析 -- 流 (三)_第4页
POCO C++库学习和分析 -- 流 (三)_第5页
资源描述:

《POCO C++库学习和分析 -- 流 (三)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、POCOC++库学习和分析--流 (三)5.ZLibStream流      Poco::DeflatingInputStream、Poco::DeflatingOutputStream、Poco::InflatingInputStream和Poco::InflatingOutputStream把zlib的压缩过程封装成为流方式。在讨论其实现之前,先来了解一下涉及到的压缩和校验算法。5.1zlib库      在Poco中实现的压缩过程是通过zlib库实现的。下面对zlib的介绍主要来自于wiki百科。      zlib是提供资料压缩之用的函式库,由

2、Jean-loupGailly与MarkAdler所开发,初版0.9版在1995年5月1日发表。      zlib目前应用很广泛,下面是其一些应用例子:         *Linux核心:使用zlib以实作网络协定的压缩、档案系统的压缩以及开机时解压缩自身的核心。         *libpng,用于PNG图形格式的一个实现,对bitmap数据规定了DEFLATE作为流压缩方法。         *Apache:使用zlib实作http1.1。         *OpenSSH、OpenSSL:以zlib达到最佳化加密网络传输。         *F

3、Fmpeg:以zlib读写Matroska等以DEFLATE算法压缩的多媒体串流格式。         *rsync:以zlib最佳化远端同步时的传输。         *ThedpkgandRPMpackagemanagers,whichusezlibtounpackfilesfromcompressedsoftwarepackages.         *Subversion、Git和CVS版本控制系统,使用zlib来压缩和远端仓库的通讯流量。         *dpkg和RPM等包管理软件:以zlib解压缩RPM或者其他封包。         *

4、因为其代码的可移植性,宽松的许可以及较小的内存占用,zlib在许多嵌入式设备中也有应用。      zlib支持两种封装格式:gzip和zlibstream。二者都是对deflate压缩算法的封装。HTTP1.1(rfc2616)里的gzip就代表gzip,而deflate则代表zlibstream,并非rawdeflate。(这里rawdeflate是指不加头的使用deflate算法压缩的原始数据)。下面是gzip和zlib的格式示意。      按照gzip的RFC1952,gzip压缩格式包含如下部分:[plain] viewplaincopy1

5、.+---+---+---+---+---+---+---+---+---+---+  2.

6、ID1

7、ID2

8、CM 

9、FLG

10、     MTIME     

11、XFL

12、OS 

13、 (more-->)  3.+---+---+---+---+---+---+---+---+---+---+  4.+=======================+  5.

14、...compressed blocks...

15、 (more-->)  6.+=======================+  7.  0   1   2   3   4   5   6   7  8.+

16、---+---+---+---+---+---+---+---+  9.

17、     CRC32     

18、     ISIZE     

19、  10.+---+---+---+---+---+---+---+---+        zlib的格式大致如下:[plain] viewplaincopy1.+----+-----+  2.

20、CMF

21、FLG

22、    (more-->)  3.+----+-----+  4.(if FLG.FDICT set)  5.0     1     2     3  6.+-----+-----+-----+-----+ 

23、 7.

24、       DICTID          

25、 (more-->)  8.+-----+-----+-----+-----+  9.+========================  10.

26、 ...compressed data... 

27、  11.+========================  12.+-----+-----+-----+-----+  13.

28、         ADLER32       

29、  14.+-----+-----+-----+-----+        注:           在上面的图中,像这样的框

30、,代表一个字节[plain] viewplaincopy1.+---+  2.

31、   

32、  <

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。