青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

zlib的使用一般是以文件作為輸入輸出,而本類在zlib庫基礎(chǔ)上進(jìn)行了一層封裝,以便在內(nèi)存中解壓gzip數(shù)據(jù),源碼如下:
 1 #ifndef __CONTENT_DECODER_H__
 2 #define __CONTENT_DECODER_H__
 3 
 4 #include <string>
 5 
 6 class gzip_decoder
 7 {
 8 public:
 9     gzip_decoder(size_t uncompress_buff_len = 1024);
10 
11     ~gzip_decoder();
12 
13     bool ungzip(unsigned char* gzdata, size_t gzdata_len, std::string& out_data);
14 
15 protected:
16 private:
17     const size_t uncompress_buff_len_;
18     unsigned char* uncompress_buff_;
19 };
20 
21 #endif
22 
23 
24 

實(shí)現(xiàn)文件:
 1 #include "content_decoder.h"
 2 #include <stdlib.h>
 3 #include "zlib.h"
 4 
 5 
 6 gzip_decoder::gzip_decoder(size_t uncompress_buff_len)
 7 :uncompress_buff_len_(uncompress_buff_len),
 8 uncompress_buff_(NULL)
 9 {
10     uncompress_buff_ = (unsigned char*)malloc(uncompress_buff_len_);
11 }
12 
13 gzip_decoder::~gzip_decoder()
14 {
15     if (uncompress_buff_)
16     {
17         free(uncompress_buff_);
18     }
19 }
20 
21 bool gzip_decoder::ungzip(unsigned char* gzdata, size_t gzdata_len, std::string& out_data)
22 {
23     int err;
24     unsigned long out_count = 0;
25     z_stream d_stream = {0}; /* decompression stream */
26 
27     d_stream.zalloc = (alloc_func)0;
28     d_stream.zfree = (free_func)0;
29     d_stream.opaque = (voidpf)0;
30     d_stream.next_in = gzdata;
31     d_stream.avail_in = gzdata_len;
32     d_stream.avail_out = uncompress_buff_len_;
33     d_stream.next_out = uncompress_buff_;
34 
35     if(inflateInit2(&d_stream, 47!= Z_OK)
36         return false;
37 
38     out_data.clear();
39 
40     while (d_stream.total_in < gzdata_len)
41     {
42         if((err = inflate(&d_stream, Z_SYNC_FLUSH)) == Z_STREAM_END)
43         {
44             out_data.append((const char*)uncompress_buff_, d_stream.total_out - out_count);
45             err = inflateEnd(&d_stream);
46             break;
47         }
48 
49         if(err == Z_OK)
50         {
51             out_data.append((const char*)uncompress_buff_, d_stream.total_out - out_count);
52             out_count = d_stream.total_out;
53             d_stream.avail_out = uncompress_buff_len_;
54             d_stream.next_out = uncompress_buff_;
55         }
56         else
57         {
58             goto unzip_exit;
59         }
60     }
61 
62 unzip_exit:
63     return err == Z_OK;
64 }

代碼下載:gzip_decoder.rar

Feedback

# re: 在內(nèi)存中解壓-實(shí)用gzip解壓類封裝  回復(fù)  更多評(píng)論   

2010-03-06 00:25 by evoup
是很實(shí)用,支持一下了

# re: 在內(nèi)存中解壓-實(shí)用gzip解壓類封裝  回復(fù)  更多評(píng)論   

2010-03-09 13:15 by 阿福
我也研究過一些deflate壓縮和GZIP壓縮的格式問題。
還沒看你的代碼,不知道你是不是用deflate壓縮代替gzip壓縮,然后再修改頭部來實(shí)現(xiàn)的。

# re: 在內(nèi)存中解壓-實(shí)用gzip解壓類封裝  回復(fù)  更多評(píng)論   

2010-03-09 17:00 by David Fang
@阿福
壓縮這方面我還沒研究過,不過這段代碼測(cè)試的對(duì)象是HTTP協(xié)議的返回內(nèi)容。當(dāng)HTTP響應(yīng)頭中的Content-Encoding值為gzip時(shí),可以用這個(gè)類正確解壓出html內(nèi)容。

# re: 在內(nèi)存中解壓-實(shí)用gzip解壓類封裝[未登錄]  回復(fù)  更多評(píng)論   

2011-11-10 13:08 by 123
樓主 貌似LIB 鏈接錯(cuò)誤啊..

posts - 9, comments - 13, trackbacks - 0, articles - 0

Copyright © David Fang

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线亚洲电影| 欧美午夜精品久久久久久人妖| 国内精品久久久久久久影视蜜臀| 亚洲乱码国产乱码精品精| 91久久中文| 欧美成人免费小视频| 久久精品免费| 久久久综合网站| 激情欧美一区| 免费短视频成人日韩| 亚洲人成网站精品片在线观看 | 红桃视频一区| 欧美精品一区在线发布| 99精品国产高清一区二区 | 亚洲国产成人精品久久| 欧美视频中文字幕在线| 久久高清免费观看| 亚洲日本国产| 一区二区三区日韩| 亚洲第一黄网| 午夜久久久久久| 在线观看精品| 国产麻豆午夜三级精品| 乱人伦精品视频在线观看| 欧美大尺度在线观看| 欧美高清一区二区| 久久国产精品久久久久久电车| 久久视频国产精品免费视频在线| 99pao成人国产永久免费视频| 久久久综合香蕉尹人综合网| 女生裸体视频一区二区三区| 亚洲砖区区免费| 亚洲国产精品一区二区www在线| 亚洲精品欧美专区| 在线观看国产精品网站| aa国产精品| 99视频国产精品免费观看| 午夜在线精品偷拍| 99精品国产福利在线观看免费| 狠狠干综合网| 在线视频你懂得一区二区三区| 久久理论片午夜琪琪电影网| 日韩一级在线观看| 免费永久网站黄欧美| 久久一区亚洲| 国产精品视频观看| 欧美日韩影院| 国产精品成人观看视频国产奇米| 乱人伦精品视频在线观看| 国产精品免费视频xxxx| 国产精品乱码一区二区三区| 亚洲国产精品va在看黑人| 欧美一区二区三区婷婷月色| 亚洲视频一区二区免费在线观看| 亚洲三级视频在线观看| 久久久久国产精品一区| 久久国产主播| 一本久久综合亚洲鲁鲁| 久久国产精品免费一区| 一区二区三区**美女毛片| 久久在线观看视频| 免费国产一区二区| 国产亚洲精品成人av久久ww| 国产在线欧美日韩| 亚洲永久免费av| 日韩午夜电影av| 欧美日韩在线播放| 亚洲午夜电影网| 欧美一区网站| 亚洲欧美在线视频观看| 这里只有精品视频在线| 香蕉久久夜色精品国产使用方法| 性做久久久久久久免费看| 欧美视频精品一区| 亚洲一区在线观看免费观看电影高清| 亚洲全黄一级网站| 欧美揉bbbbb揉bbbbb| 亚洲欧美一区在线| 性欧美xxxx视频在线观看| 国产欧美日韩综合精品二区| 在线观看欧美亚洲| 欧美成人在线影院| 亚洲一区二区免费看| 久久精品亚洲乱码伦伦中文| 狠狠色综合网| 亚洲成人在线网站| 一本一本a久久| 国产精品影片在线观看| 久久疯狂做爰流白浆xx| 亚洲国产日韩欧美在线动漫| 亚洲在线播放| 国产综合在线视频| 欧美国产日韩一区二区| 性一交一乱一区二区洋洋av| 韩日欧美一区二区三区| 欧美黄免费看| 国产精品女主播在线观看| 久久久久中文| 欧美久久久久久久久| 欧美一区二区福利在线| 久久综合色综合88| 亚洲手机成人高清视频| 久久99伊人| 国产精品羞羞答答xxdd| 久久久久国产精品麻豆ai换脸| 免费影视亚洲| 久久电影一区| 国产精品成人播放| 欧美激情一区| 国产中文一区二区| 99精品热视频| 亚洲人成人99网站| 亚洲欧美综合| 亚洲视频二区| 欧美成人一品| 久久综合久久综合久久综合| 亚洲香蕉成视频在线观看| 欧美精品一区二区久久婷婷| 亚洲中字在线| 亚洲高清视频一区二区| 国产精品久久精品日日| 亚洲第一页自拍| 国产一区二区中文| 亚洲视频一起| 亚洲最新在线视频| 美日韩免费视频| 久久影音先锋| 国产亚洲激情| 亚洲素人在线| 亚洲图片在线| 欧美日韩三级| 亚洲日本久久| 日韩一级裸体免费视频| 麻豆91精品| 欧美成人亚洲成人日韩成人| 黑丝一区二区三区| 欧美亚洲视频在线观看| 国内精品美女在线观看| 亚洲一区欧美二区| 亚洲午夜久久久久久久久电影院| 美女诱惑黄网站一区| 欧美va天堂va视频va在线| 伊人久久亚洲影院| 久久久久久久久伊人| 91久久午夜| 免费观看一级特黄欧美大片| 欧美激情女人20p| **欧美日韩vr在线| 亚洲美女黄色| 夜夜嗨av色一区二区不卡| 欧美高潮视频| 亚洲精品中文字幕女同| 亚洲作爱视频| 国产精品免费区二区三区观看| 亚洲一区不卡| 久久九九国产| 亚洲成色999久久网站| 女主播福利一区| 日韩视频精品| 欧美一区二区三区四区夜夜大片| 国内成+人亚洲| 蜜臀久久久99精品久久久久久| 亚洲国产精品久久久久秋霞影院| 日韩视频在线观看| 国产精品毛片在线| 久久国产手机看片| 亚洲人成77777在线观看网| 亚洲天堂av在线免费观看| 国产精品自拍在线| 农村妇女精品| 亚洲女优在线| 一区二区三区久久精品| 欧美视频在线免费看| 午夜精品久久久久久久久久久久久 | 中文有码久久| 久久青青草综合| 一区二区三区欧美在线| 国产午夜精品一区理论片飘花| 亚洲精品久久在线| 新67194成人永久网站| 在线精品国产欧美| 欧美午夜精品久久久久久孕妇| 欧美日韩综合视频网址| 欧美激情亚洲视频| 在线观看亚洲视频| 欧美国产日韩亚洲一区| 亚洲中无吗在线| 欧美激情小视频| 久久不射电影网| 在线性视频日韩欧美| 极品少妇一区二区三区| 欧美色区777第一页| 久久久蜜桃精品| 亚洲免费视频中文字幕| 亚洲激情二区| 亚洲第一在线综合网站| 国产精品免费看| 欧美少妇一区二区| 欧美sm视频| 久久久精品一区|