这两个函数的参数中,read使用的是满足MutableBufferSequence的类型, 而write
使用的是满足ConstBufferSequence的类型
而boost::asio::buffer(const std::string &str)返回的是一个const_buffer_1
的类型,这个是个ConstBufferSequence, 也就是说,
std::string response;
count = boost::asio::read(connfd, boost::asio::buffer(response));
这样的语句是无法通过编译的.
变通的办法就是
std::vector<char> vec_response;
count = boost::asio::read(connfd, boost::asio::buffer(vec_response));
Asio中给出的例子也正是这样用的.
但是,为什么boost::asio::buffer(const std::string &str)要返回
const_buffer_1呢?
--
caosuwei <caosuwei@gmail.com>
没有评论:
发表评论