boost asioのasync_read_untilの使用に関する一般的な質問があります。ドキュメントには、ハンドラが呼び出されたときにバッファ内にさらにデータが存在する可能性があることが記載されています。これを回避し、シーケンス条件が一致した直後にバッファがソケットからバイトを消費しないようにする方法はありますか?boost asio async_read_until一致条件での読み込みを停止する
1
A
答えて
1
Q.直接この
ない回避する方法は、ネットワークのトラフィックが(それはパケット指向です)動作方法のため、あります。
もちろん、あなたはかもしれません。送信側が積極的にそれを保証していればプロトコル境界で物事を取得しますが、これはストリームプロトコルにとっては珍しいことです。
Q.とシーケンス条件がマッチした直後ソケットからバイトを消費するからバッファを停止しますか?
いいえ、ただし、バッファの消費を停止することはできます。したがって、たとえば
boost::asio::streambuf sb;
auto bytes = boost::asio::read_until(socket, sb, "\r\n\r\n");
std::istream is(&sb);
std::string line;
while (getline(is, line) && !line.empty()) {
std::cout << "Received: '" << line << "'\n";
}
// sb still contains un-consumed data, if any
だけで、その後の読み込みと、それはあなたのための「ストリーム位置を」管理されますのために同じstreambuf
を使用します。これは有効なパターンです。
関連する問題
- 1. boost :: asio :: async_read_until withカスタム一致条件演算子オーバーロードの混乱
- 2. Boost :: Asio読み込み/書き込み操作
- 3. 条件付きCSSのコンテンツの読み込みを停止します
- 4. 埋め込み済みのYouTube動画の一時停止後の読み込みを停止する方法
- 5. スタイルシートの条件付き読み込み
- 6. 文字の読み込みと読み込みの不一致
- 7. Node.js読み込み可能なストリームを一時停止
- 8. boost asio:0バイト書き込み
- 9. boost :: asio読み取り応答
- 10. モバイルでの動画の読み込みを停止します。
- 11. すぐにUIWebViewの読み込みを停止する方法
- 12. 15分後にデータの読み込みを停止するC#
- 13. ヘッドレスブラウザの読み込みを停止するページ
- 14. ページの読み込みを停止するwatir-webdriver
- 15. UIWebViewの読み込みを停止する方法
- 16. Angular2 Child Routesページの読み込みを停止する
- 17. viewpager + webview、webviewの読み込みを停止する方法
- 18. Androidスタジオが読み込み画面で停止する
- 19. AngularJS、Google Maps APIの読み込み中に一時停止する
- 20. C++の行の読み込みを停止できません
- 21. 配列の値を読み込み、条件付きで返す
- 22. 素材CSS - ページ読み込み後プリローダを停止する
- 23. Outlook 2003アドインの読み込みが停止する
- 24. 条件が偽である場合の角度読み込み
- 25. 条件付きで.plistファイルを作成/読み込みます。
- 26. HtmlUnitはPSNストアページの読み込みを停止しますか?
- 27. ファイルの読み込みをいつ停止しますか?
- 28. プログラムを一時停止せずにコンソールから読み込む
- 29. ページの読み込み時にアニメーションを開始する、読み込まれたページで停止する
- 30. ブースト:: ASIO :: async_write()ブースト:: ASIO ::書き込み()