zlib类库提供了很多种压缩和解压缩的方式,由于时间的关系我只学习一下内容,以下是我在实现web 服务器压缩数据网页中使用到一些函数和常用数据结构、常量等。
zlib使用过程
压缩过程:deflateInit() ->deflate() ->deflateEnd(); 对应的解压过程 inflateInit() -> inflate() -> inflateEnd();
压缩过程:deflateInit2() ->deflate() ->deflateEnd(); 对应的解压过程 inflateInit2() -> inflate() -> inflateEnd();
zlib使用的实例请看:
http://www.zlib.net/zlib_how.html 注释内容详细(英文)
http://www.zlib.net/zlib_how.html 注释内容详细(英文)
web服务器是如何通过压缩数据,web服务器的gzip模块的实现 我自己写的(中文)
zlib解压缩的实现实例(来自百度百科,本人未加正式,请谅解)
常用的数据结构
typedef struct z_stream_s {
z_const Bytef *next_in; //要压缩数据的首地址
uInt avail_in; //压缩数据的长度
uLong total_in; //压缩数据缓冲区的长度
Bytef *next_out; //压缩数据保存位置。
uInt avail_out; //存放压缩数据位置的首地址
uLong total_out; //存放压缩数据位置的大小
z_const char *msg; //存放最近的错误信息,NULL表示没有错误