Boost 的 Asio 中 asio::async_read 无法获取网络中断

kokocs 2008-02-20 10:31:22
asio::async_read 的作用是接收指定字节数的数据后再响应异步函数func,但实验中发现当网络中断(如:对端的网卡禁用)后,
异步函数func无法响应,从而无法判断网络中断。
而在对端正常关闭网络连接时异步函数func是可以响应的,在使用async_read函数是应该怎样判断网络的异常中断?

代码大致如下:
char inbound_header_[8];

boost::asio::async_read( socket_, boost::asio::buffer(inbound_header_),
boost::bind(func, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred );

void func( const boost::system::error_code& ec, std::size_t bytes_transferred )
{ }
...全文
273 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
eduyu 2008-02-20
  • 打赏
  • 举报
回复
没用过,只知道这东西不错,不过没通过boost评审,不算正式的boost成员。
kokocs 2008-02-20
  • 打赏
  • 举报
回复
自己顶,看来没人用ASIO

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧