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

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>
            亚洲毛片在线观看.| 久久免费精品日本久久中文字幕| 欧美女激情福利| 久久蜜桃av一区精品变态类天堂| 亚洲欧美精品伊人久久| 一区二区三区免费观看| 在线观看日韩精品| 久久手机精品视频| 老司机一区二区三区| 狠狠综合久久av一区二区小说| 一本色道久久综合亚洲精品婷婷| 亚洲手机在线| 久久精品动漫| 欧美精品成人在线| 国产精品视频九色porn| 在线观看日韩av先锋影音电影院| 99视频有精品| 欧美在线视频免费| 亚洲电影中文字幕| 女同性一区二区三区人了人一 | 久久免费少妇高潮久久精品99| 久久亚洲美女| 久久久久久久久久看片| 精品不卡视频| 在线亚洲一区| 老司机aⅴ在线精品导航| 亚洲日韩欧美视频| 亚洲愉拍自拍另类高清精品| 久久久午夜电影| 欧美午夜女人视频在线| 精品va天堂亚洲国产| 亚洲欧美不卡| 亚洲激情视频在线播放| 欧美在线视频导航| 久久久久国内| 国产精品入口日韩视频大尺度| 免费成人激情视频| 国产精品久久久久9999吃药| 亚洲国产欧美日韩| 久久国产一区二区| 亚洲视频自拍偷拍| 欧美精品尤物在线| 中文在线不卡视频| 欧美激情一区二区三区全黄| 午夜宅男欧美| 国产精品美腿一区在线看| 亚洲精品乱码久久久久久黑人| 久久美女性网| 性欧美办公室18xxxxhd| 国产精品国产自产拍高清av王其| 亚洲精品国产精品国自产在线| 久久乐国产精品| 欧美一区二区三区视频在线观看 | 欧美va天堂va视频va在线| 亚洲天堂av综合网| 在线亚洲高清视频| 欧美精品免费观看二区| 亚洲激精日韩激精欧美精品| 久久久免费精品| 久久成人人人人精品欧| 亚洲欧美日韩国产一区二区| 亚洲在线免费视频| 亚洲一二三区在线| 国产精品久久久久aaaa九色| 亚洲在线观看免费视频| 99在线精品视频在线观看| 欧美日韩大片| 亚洲一区免费视频| 亚洲一区二区三区午夜| 国产精品日韩久久久久| 亚洲国产精品专区久久| 免费成人小视频| 亚洲韩国一区二区三区| 欧美激情精品久久久久久变态| 久久综合久久综合九色| 亚洲日本免费电影| 日韩视频免费观看| 亚洲欧洲精品一区二区三区| 欧美激情小视频| 亚洲午夜羞羞片| 亚洲欧美在线看| 亚洲国产小视频| 99视频在线精品国自产拍免费观看| 99re热这里只有精品免费视频| 免费观看国产成人| 欧美激情在线| 性欧美暴力猛交另类hd| 久久精品99无色码中文字幕 | 亚洲欧美日韩国产成人精品影院| 国产老女人精品毛片久久| 欧美日韩亚洲综合在线| 久久精品91| 欧美国产高清| 欧美一区二区三区播放老司机| 久久久久成人精品免费播放动漫| 日韩一级精品视频在线观看| 午夜精品久久久久久久99黑人| 久久人人看视频| 中文久久精品| 一区二区三区四区五区视频| 久久精品成人一区二区三区| 欧美大片在线影院| 久久激情网站| 欧美三级午夜理伦三级中文幕| 久久亚洲国产成人| 欧美午夜久久| 亚洲欧洲在线一区| 狠狠色香婷婷久久亚洲精品| aa日韩免费精品视频一| 韩国三级电影一区二区| 亚洲色图自拍| 日韩视频在线一区二区三区| 欧美一区二区在线| 亚洲欧美精品中文字幕在线| 免费日韩av| 老司机精品视频网站| 国产欧美一区二区精品婷婷| 一区二区高清视频| 99这里只有精品| 女人天堂亚洲aⅴ在线观看| 久久久久久久一区二区三区| 欧美精品三区| 欧美成人嫩草网站| 黄色一区二区在线| 欧美亚洲网站| 欧美在线观看视频在线| 国产精品你懂的| 一区二区成人精品| 亚洲无玛一区| 欧美日韩在线电影| 日韩特黄影片| 亚洲视频在线播放| 久久不射电影网| 国产精品久久激情| 亚洲国产精品精华液网站| 韩国女主播一区二区三区| 亚洲综合精品四区| 在线亚洲欧美视频| 欧美日韩一区视频| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美黑人国产人伦爽爽爽| 狠狠入ady亚洲精品经典电影| 性视频1819p久久| 久久久99爱| 好吊色欧美一区二区三区四区 | 欧美先锋影音| 在线中文字幕一区| 亚洲午夜女主播在线直播| 国产精品久久99| 亚洲天堂av综合网| 久久精品国产99| 韩国福利一区| 另类成人小视频在线| 亚洲激情第一页| 一区二区三区高清不卡| 国产精品久久综合| 欧美一区高清| 亚洲福利视频专区| 亚洲视频视频在线| 国产伦一区二区三区色一情| 久久精品国产成人| 亚洲电影成人| 亚洲一区二区三区在线视频| 国产欧美日韩91| 久久久久国色av免费观看性色| 亚洲国产精品t66y| 亚洲欧美在线一区| 依依成人综合视频| 欧美区国产区| 欧美一区二区三区免费大片| 欧美激情亚洲| 欧美一区午夜精品| 亚洲精品乱码久久久久久久久 | 中文网丁香综合网| 久久亚洲欧洲| 亚洲天堂av图片| 伊人久久综合97精品| 亚洲一区在线视频| 午夜免费在线观看精品视频| 欧美大片一区| 午夜亚洲影视| 亚洲每日更新| 国内精品视频在线播放| 欧美日韩国产首页| 另类尿喷潮videofree| 亚洲一卡久久| 亚洲人妖在线| 久久九九热免费视频| 中文av字幕一区| 91久久综合亚洲鲁鲁五月天| 国产精品自拍一区| 久久精品国产77777蜜臀| 亚洲国产精品黑人久久久| 国产一区二区你懂的| 欧美激情在线观看| 午夜精品久久久久| 日韩亚洲成人av在线| 欧美激情一区二区三区蜜桃视频 | 亚洲美女在线视频| 在线不卡a资源高清|