8

boost::asio::ip::tcp::socketread_some/write_someメンバー関数の呼び出しとboost::asio::read/boost::asio::writeフリー関数の呼び出しの違いは何ですか?

すなわち:

どちらか一方を使用する利点はありますか?

両方がライブラリに含まれているのはなぜですか?

4

1 に答える 1

13

read_some と write_some は、1 バイトでも転送されるとすぐに戻る場合があります。そのため、すべてのデータを確実に取得したい場合はループする必要がありますが、これが必要な場合もあります。

free 関数は read_some と write_some のラッパーであり、オーバーロードに応じて終了条件が異なります。通常、バッファが完全に転送されるまで (またはエラーが発生するか、一部のオーバーロードでは明示的な完了条件が発生するまで) 待機します。

于 2009-08-04T16:03:15.957 に答える