青山相待

            白云相爱

            梦不到紫罗袍共黄金带

            一茅斋

            野花开

            管甚谁家兴废谁成败

            陋巷单瓢亦乐哉

            贫,气不改!

            达,志不改!

反应器类型的操作

有的时候程序必须依赖第三方库来完成I/O操作,鉴于这种情况,Boost::Asio提供了一个null_buffers 类型可以同时完成读和写操作,null_buffers 直到执行I/O操作的对象就绪才返回。
下面是一个执行非阻塞的读操作的例子
ip::tcp::socket socket(my_io_service);
...
ip::tcp::socket::non_blocking nb(true);
socket.io_control(nb);
...
socket.async_read_some(null_buffers(), read_handler);
...
void read_handler(boost::system::error_code ec)
{
  if (!ec)  {
    std::vector<char> buf(socket.available());
    socket.read_some(buffer(buf));
  }
}
  
  
  
这些操作支持任意平台上的socket。
posted @ 2016-03-13 15:46  Leo.Z  阅读(191)  评论(0编辑  收藏  举报