Zlib C++ boost inflate 套接字数据
我使用 boost asio 通过套接字从服务器接收数据,并使用 zlib 压缩数据。一旦我得到这些数据,我就需要对其进行夸大。有没有一种简单的方法可以使用 boost 来做到这一点?或者有其他办法吗?代码是C++。
I am receiving data from a server through a socket using boost asio, and the data is compressed using zlib. I need to inflate this data once I get it. Is there an easy way to do this using boost? Or any other way? The code is C++.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Boost.Iostreams 库包含一个 zlib 解压缩过滤器 (链接)。您可以从套接字将一大块数据读入缓冲区,然后解压缩,或者您可以(希望如此,但我自己还没有尝试过)将过滤器链接到套接字上,并直接从过滤器的末尾读取解压缩的数据。
但请注意,您必须重新编译带有 zlib 支持的 boost。 (链接)
The Boost.Iostreams library includes a zlib decompressor filter (link). You can read a chunk of data from the socket into a buffer then decompress, or you can (hopefully, but I haven't tried it myself) chain the filter onto the socket and read decompressed data straight out of the end of the filter.
Note, however, that you have to re-compile boost with zlib support. (link)
不知道 boost,但您可以下载 zLib .h 和 .lib 链接您的代码并调用解压缩。
Don't know about boost, but you can download zLib .h and .lib link your code and call uncompress.