私はすでにboost :: asioのドキュメントを読むのに2日を無駄にしました そして、私はブロックを実装する方法がまだ分かりませんselect()
は、 (ブーストフレームワークを使用して)1つのスレッドのみを使用するソケット。 boost :: asioの非同期関数がすぐに戻るので、async_read
のいずれかが終了するまでメインスレッドにいくつかの待機関数を入れる必要があります。 これは時間がかかると思われますが、実際にはパフォーマンス要件によって制限されています。boost :: asio内でPOSIX select()ベースの動作を実装する方法
2
A
答えて
2
io_service
オブジェクトは、select
関数の抽象です。あなたのソケットを設定し、メインスレッドからio_service::run
メンバ関数を呼び出します。 io_service::run
関数は、io_service
インスタンスに関連するすべての作業が完了するまでブロックします。非同期ハンドラでは、さらに多くの作業をスケジュールできます。
またio_service::run_one
、io_service::poll
、またはio_service::poll_one
io_service::run
の代わりに使用することができます。
関連する問題
- 1. Boost :: asioでftraceパイプを読むposix stream_descriptor
- 2. Boost :: Asioチャットのサンプルプログラム---プライベートチャットの実装方法
- 3. io_service-per-CPUでboost :: asio :: spawnを実行する方法は?
- 4. boost :: asioとshared_ptrでシリアルポートを作成する方法
- 5. boost :: asio :: buffer
- 6. boost :: asio :: steady_timerはboost :: dllで動作しません
- 7. Boost :: asioとasync_read
- 8. 動的スレッドを実装する方法Boost :: Barrier?
- 9. boost :: asio serverマルチプロセス
- 10. boost :: lockfree :: spsc_queueとboost :: asio
- 11. boost :: asio :: io_service :: run_one()の使用方法
- 12. 待機中に `boost :: asio :: read`操作を取り消す方法
- 13. boost :: asio :: strand && boost :: lockfree :: spsc_queue
- 14. C++ Boost ASIOソケットエラー
- 15. ユニットテストとboost :: asio
- 16. boost :: asio UDPブロードキャスト
- 17. boost :: asio socket async_ * strand
- 18. boost asioエラーカテゴリがnullです
- 19. boost :: asio double buffering
- 20. Boost ASIOとBoost posix timeを使用して、WinXP 32で受信シリアルデータをタイムスタンプしますか?
- 21. boost asio multicast join
- 22. boost :: asio :: streambuf empty?
- 23. boost :: asio読書のトラブル
- 24. Boost :: asio async_waitハンドラシグネチャ
- 25. select()をboost :: asio :: io_serviceに置き換える
- 26. Cygwin 64ビットでboost asioライブラリを使用する方法
- 27. プラグイン間でboost :: asio :: io_serviceを共有する方法[modules]
- 28. boost asio async_read delay(ローカルソケット)
- 29. boost :: asio sslリンクエラー
- 30. 「カテゴリ」ベースのニュースレターの実装方法