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 に答える