2

Boost::ASIO 中有没有办法知道是否async_read_some不会在特定时间段内返回调用函数而不关闭套接字?async_read_some()如果没有更多数据要传输到缓冲区,通常不会返回。

 _socket->async_read_some(
     boost::asio::buffer(this->reply, sizeof(this>reply)),
     boost::bind(
         &TCP_IP_Connection::dataProcess,
         this,
         boost::asio::placeholders::error,
         boost::asio::placeholders::bytes_transferred
     )
 );
4

1 回答 1

0

async_read_some总是立即返回。

如果您正在谈论处理程序(回调),如果您在套接字返回之前关闭它,那么我认为处理程序会被调用asio::error::operation_aborted。如果您处理这种情况,那么也许您不必担心您是否已连接。

于 2016-12-06T06:41:33.513 回答