Может ли cpp_netlib выполнять асинхронные параллельные запросы? - PullRequest
0 голосов
/ 11 ноября 2010

cpp_netlib docs содержит пример HTTP-клиент , но я вижу, что он работает только в режиме блокировки :

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

- это (как мне кажется) остановит выполнение программы во время ожидания ответа сервера. Могу ли я выполнить несколько одновременных запросов с помощью cpp_netlib , не создавая несколько потоков? Я имею в виду неблокирующую манеру, что-то вроде циклического вызова io_service.poll () и использования обработчиков обратного вызова для перехвата ответов, а также некоторую дополнительную обработку во время ожидания ответа (-ов).

1 Ответ

0 голосов
/ 14 ноября 2010

Можно обрабатывать асинхронные соединения неблокирующим способом, используя 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

...