【发布时间】:2016-10-07 01:30:50
【问题描述】:
在我的项目中,通过 socket 读取和写入的消息是用 boost 的 Zlib 过滤器压缩的,我想知道如何对 files 做同样的事情。 有什么更好的方法来提高速度?不使用硬盘将数据保存到缓冲区?
我在使用 boost 传输文件时遇到问题,欢迎提供任何帮助和示例。
我正在使用以下代码发送压缩消息:
std::string data_
std::stringstream compressed;
std::stringstream original;
original << data_;
boost::iostreams::filtering_streambuf<boost::iostreams::input> out;
out.push(boost::iostreams::zlib_compressor());
out.push(original);
boost::iostreams::copy(out, compressed);
data_ = compressed.str();
boost::asio::write(socket_, boost::asio::buffer(data_ + '\n'));
编辑:
我想知道如何压缩文件而不必在 HD 中保存压缩副本。将字节直接保存到缓冲区中,然后发送到套接字。服务端必须接收文件并解压
【问题讨论】:
-
能否详细说明您遇到的问题?什么不起作用?