- 论坛徽章:
- 0
|
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 显示一堆乱码、 大家帮我看看 什么问题 |
|