首页 > 其他 > 详细

BOOST中read_some和 boost::asio::error::eof(2)错误

时间:2016-05-27 23:19:35      阅读:216      评论:0      收藏:0      [点我收藏+]
当socket读写完成调用回调函数时候一定要检查 是不是有EOF错误,如果有那么好了,另一方已经断开连接了别无选择,你也断开把。
 
for (;;) {
    boost::array < char, 128 > buf;
    boost::system::error_code error;
    size_t len = socket.read_some(boost::asio::buffer(buf), boost::asio::assign_error(error));
    //当服务器关闭连接时,boost::asio::ip::tcp::socket::read_some()会用boost::asio::error::eof标志完成, 这时我们应该退出读取循环了. 
    if (error == boost::asio::error::eof)
      break;
    // Connection closed cleanly by peer.
    else if (error)
      throw error;
    // Some other error.
    std::cout.write(buf.data(), len);
}
//如果发生了什么异常我们同样会抛出它 

  

 原文 http://blog.chinaunix.net/uid-22273897-id-393662.html

BOOST中read_some和 boost::asio::error::eof(2)错误

原文:http://www.cnblogs.com/lovelylife/p/5536229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!