Multi CURL C ++ Постоянно поставляйте новые обработчики, когда будете готовы

0

Я использую API CURL Multi в C++.

На данный момент я закрываю количество обработчиков, которые я даю им в 5, так что я должен ждать, пока они все не будут выполнены, пока я не смогу предоставить еще 5 обработчиков.

Я хочу, чтобы иметь возможность обнаруживать, когда обработчик завершил, обрабатывать данные, а затем сгенерировать следующий обработчик для ввода нового пространства.

Можно ли передавать обработчики в Multi API во время работы?

Теги:
curl

1 ответ

1
Лучший ответ

Можно ли передавать обработчики в Multi API во время работы?

Да.

Как только curl_multi_info_read вернет сообщение с флагом CURLMSG_DONE вы можете:

  1. получить соответствующий удобный дескриптор через msg->easy_handle
  2. проверьте передачу в порядке и сделайте то, что хотите, с ответом,
  3. Удалите эту ручку с curl_multi_remove_handle

Затем вы можете добавить еще один дескриптор в свой curl_multi_add_handle с curl_multi_add_handle.

В большинстве случаев лучше всего выполнить curl_easy_reset на простом дескрипторе, прежде чем добавлять его снова:

  curl_multi_remove_handle(multi_handle, easy_handle);
  curl_easy_reset(easy_handle);
  // here re-configure your handle for the next transfer (CURLOPT_URL, etc)
  // ...
  curl_multi_add_handle(multi_handle, easy_handle);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню