cpp_netlib可以执行异步并发请求吗?

时间:2010-11-11 20:01:41

标签: c++ boost boost-asio cpp-netlib

cpp_netlib 文档包含示例 HTTP客户端,但我发现它仅适用于阻止模式

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

- 这(我猜)会在等待服务器响应时停止程序执行。我可以使用cpp_netlib 执行多个并发请求而不会生成多个线程吗?我的意思是一种非阻塞方式,比如循环调用io_service.poll()并使用回调处理程序来捕获响应 - 以及在等待响应时的一些额外处理。

1 个答案:

答案 0 :(得分: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_netlib 0.9中实现。

有关详细信息,请查看cpp_netlib邮件列表archieve:http://sourceforge.net/mailarchive/message.php?msg_name=AANLkTingb%2BB06YVyK%3D-XYAcZsQ2sZc%3DE%3DTPhAgcfjrTb%40mail.gmail.com