免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3936 | 回复: 0
打印 上一主题 下一主题

[C] 我用zlib的 deflateInit2压缩的字符,浏览器显示错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-13 17:19 |只看该作者 |倒序浏览
int main(int argc, char **argv)
{
    int err;
    unsigned have;
    z_stream strm;
    char in[CHUNK]  = "The most straightforward technique turns out to be the fastest for*      most input files: try all possible    strings is inspired from that of Rabin & Karp. A brute force approach*      is used to find longer strings when a small match has been found.*      A similar algorithm is used in comic (by Jan-Mark Wams) and freeze*      (by Leonid Broukhis).";
    char out[CHUNK];

    strm.zalloc   = Z_NULL;
    strm.zfree    = Z_NULL;
    strm.opaque   = Z_NULL;
    strm.avail_in = 0;
    strm.next_in  = Z_NULL;

    err = deflateInit2(&strm, 8, Z_DEFLATED, -MAX_WBITS, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY);
    if(err != Z_OK)
    {
        printf("deflateInit error: %d\r\n", err);
        return 0;
    }
   
    strm.avail_in = strlen(in);
    strm.next_in  = in;

    do {
            strm.avail_out = CHUNK;
            strm.next_out  = out;
            err = deflate(&strm, Z_FINISH);
            assert(err != Z_STREAM_ERROR);  /* state not clobbered */
            switch (err) {
            case Z_NEED_DICT:
                err = Z_DATA_ERROR;     /* and fall through */
            case Z_DATA_ERROR:
            case Z_MEM_ERROR:
                (void)inflateEnd(&strm);
                return err;
            }
            have = CHUNK - strm.avail_out;
            printf("in = %d\r\nout = %s\r\nhave = %d\r\nstrm.total_out = %d\r\n", strlen(in), out, have, strm.total_out);

        } while (strm.avail_out == 0);
        assert(strm.avail_in == 0);     /* all input will be used */
    deflateEnd(&strm);
    return 1;
}


这个是我根据官方的例子代码 改过来的。当http server的  字符串压缩。 我在HTTP头信息里面 加上 了

HTTP/1.1 200 OK
Date: Wed, 13 Aug 2008 17:13:40 GMT
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 288
Connection: close

在IE里 一片空白
opera 显示一堆乱码、 大家帮我看看 什么问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP