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_netlib 0.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 回答