私は一般的にネットワークプログラミングを初めて使いました。私はこれについてブーストの文書で何も見つけることができませんでした。 asio :: async_readを使用すると、ソケットから読み込むデータがないときにファイルエラーの終了が発生します(少なくとも、私はそうすると思います)。この動作を防ぐために何らかのチェックを実装する方法はありますか?私が得ようとしているのは、データが存在するのを待ってから、データを読み込んでハンドラを呼び出す方法があるかどうかです。 (これは悪い言葉遣いされている場合は、私は明確にしようとします。そう言ってください。)boost :: asio読書のトラブル
2
A
答えて
3
ASIO :: async_readを使用している場合から読み取るすべき データがない場合、 ファイルエラーの終了が発生しましたソケット
eof
ソケットの反対側が閉じられているときに、読み取るデータがないときは閉じません。
私はATが取得しようとしている何を:データが 存在することを待つこと どのような方法がされ、その後、読んでは、データと コールハンドラ言いましたか?
これはポーリングと呼ばれ、これはasio io_service
の機能です。ソケットio_service
に、async_read
を開始してソケットからデータを読み取るように指示します。それは、あなたのために読み込みを実行し、正常に完了したか失敗したときに補完ハンドラを起動します。
study the differencesは、Boost.Asioによって提供される非同期メソッドと同期メソッドの間で時間がかかるかもしれません。
関連する問題
- 1. C++ Boost ASIO:タイムアウトで読み書きする方法は?
- 2. Boost :: Asio読み込み/書き込み操作
- 3. boost :: asio読み取り応答
- 4. Boost :: asioでftraceパイプを読むposix stream_descriptor
- 5. boost asio:0バイト書き込み
- 6. boost :: asio :: strand && boost :: lockfree :: spsc_queue
- 7. boost :: lockfree :: spsc_queueとboost :: asio
- 8. boost :: asio UDPブロードキャスト
- 9. ユニットテストとboost :: asio
- 10. boost asio multicast join
- 11. boost :: asio serverマルチプロセス
- 12. Boost :: asioとasync_read
- 13. boost :: asio :: streambuf empty?
- 14. boost :: asio :: buffer
- 15. boost :: asio sslリンクエラー
- 16. Boost :: asio async_waitハンドラシグネチャ
- 17. C++ Boost ASIOソケットエラー
- 18. boost :: asio double buffering
- 19. boost asio async_read delay(ローカルソケット)
- 20. boost asio unix socket reuse
- 21. boost asio tcp ip write
- 22. Boost AsioとOpenSSL 1.1.0
- 23. boost :: asio socket async_ * strand
- 24. boost :: asio :: async_resolve問題
- 25. ブースト:: ASIO :: async_write()ブースト:: ASIO ::書き込み()
- 26. boost :: asioのasync_read()のEOF
- 27. boost :: threadsからboost :: asioタイマーへ
- 28. boost :: property_tree :: read_xml boost :: asio :: spawnを使用して生成されたasioハンドラのsegfaults
- 29. boost asioエラーカテゴリがnullです
- 30. オーバーロード可能boost :: asio :: basic_stream_socket
すばやくお返事ありがとうございます!私のサーバーの代わりにクライアントの問題だと思います。 – chameco