0

cpp_netlibドキュメントにはHTTPクライアントの例が含まれていますが、ブロッキングモードでのみ機能することがわかります。

http_client::response response = client.get(request);

--これは(私が推測するように)サーバーの応答を待っている間、プログラムの実行を停止します。複数のスレッドを生成せずに、cpp_netlibで複数の同時リクエストを実行できますか?つまり、io_service.poll()を周期的に呼び出したり、コールバックハンドラーを使用して応答をキャッチしたり、応答を待機している間に追加の処理を行ったりするような、非ブロッキングの方法を意味します。

4

1 に答える 1

0

非同期タグ付きのtypedefを使用して、非ブロッキング方式で非同期接続を処理することができます。

typedef boost::network::http::basic_client<
  boost::network::http::tags::http_async_8bit_udp_resolve
  , 1, 0> http_client;

ただし、現在、コールバックと要求完了の周期的チェックを使用して、フル機能の同時接続処理を実装する機能はありません。ライブラリの現在の0.7バージョンではなく、次の0.8バージョンでもありません。たぶん、これらの機能はcpp_netlib0.9で実装されるでしょう。

詳細については、cpp_netlibメーリングリストアーカイブを参照してください:http ://sourceforge.net/mailarchive/message.php?msg_name = AANLkTingb%2BB06YVyK%3D-XYAcZsQ2sZc%3DE%3DTPhAgcfjrTb%40mail.gmail.com

于 2010-11-14T08:18:54.537 に答える