Использование libcurl с libevent

Может ли кто-нибудь показать (через код) или объяснить мне, как я могу использовать libevent и curl вместе в программе c? Я пытаюсь написать высокопроизводительный неблокирующий монитор данных, которому необходимо загружать данные в экземпляр CouchDB. Я знаком как с libevent, так и с curl, но по какой-то причине слияние curl_multi с libevent поставило меня в тупик. Я не понимаю алгоритм работы официального примера libcurl - может ли кто-нибудь указать мне или предоставить более простой пример?


person Peter Downs    schedule 03.08.2011    source источник


Ответы (1)


Ключом на самом деле является функция curl_multi_socket_action(), которую следует использовать, как только ваша библиотека событий сообщит, что есть что-то на сокете для решения. libcurl, основанный на событиях, более сложен, чем «простой» libcurl, поэтому сделать очень простой пример не так просто.

person Daniel Stenberg    schedule 03.08.2011
comment
когда я вызываю curl_multi_socket_action(), говоря ему, что нужно читать или писать, используются ли функции обратного вызова чтения/записи, которые были настроены с помощью curl_easy_setopt()? Если нет, то как он выполняет чтение/запись? - person Peter Downs; 03.08.2011
comment
Да, он будет использовать обратные вызовы для чтения/записи, как вы настроили. - person Daniel Stenberg; 04.08.2011
comment
Ах, хорошо, это сделает это немного яснее. Спасибо за вашу помощь. - person Peter Downs; 04.08.2011