Libcurl использование multi_socket режима
Здравствуйте,
Подскажите пожалуйста, уже не первый день пытаюсь, понять, как работает libcurl в multi_socket режиме - пытаясь его объединить напрямую с портом завершения IO Windows и судя по этой цитате из онлайн книги - libcurl это позволяет:
There are numerous event based systems to select from out there, >and libcurl is completely agnostic to which one you use. >libevent, libev and libuv are three popular ones but you can also >go directly to your operating system’s native solutions such as >epoll, kqueue, /dev/poll, pollset, Event Completion or I/O >[b]Completion Ports[/b]
Я перечитал эту же всю документацию из Libcurl, пересмотрел примеры на их сайте касающееся multi_socket режима, но я все равно не могу понять, как он работает.
На данный момент я:
1)Создал easy_handles. (curl_easy_init)
2)Создал multi_handle. (curl_multi_init)
3)В multi_handle установил параметры: curl_easy_setopt: CURLMOPT_SOCKETFUNCTION и CURLMOPT_TIMERFUNCTION
4)К multi_handle добавил—> easy_handles.(curl_multi_add_handle)
..После этого …
5)Вызывается колбэк функция callback_timer() (CURLMOPT_TIMERFUNCTION)
6)В этой функции call_back_timer я вызываю функцию curl_multi_socket_action().
7)Далее вызывается колбэк функция callback_socket_function (CURLMOPT_SOCKETFUNCTION):
>int socket_callback(CURL *easy, // easy handle
>curl_socket_t s, // socket
>int what, // describes the socket
>void *userp, // private callback pointer
>void *socketp); // private socket pointer
8)Параметр "what " в callback_socket_function - приходит равный 1 == CURL_POLL_IN:
CURL_POLL_IN: ждать входящих данных. Чтобы сокет стал читаемым.
Я не понимаю, о чем в данном случае говорит вызов колбек функции callback_socket_function? Ну вызвалась они, там указан" описание сокета" в переменной what, а дальше что делать то ?
Причем судя по дебаг информации, которую предоставляет libcurl в консоль, сам libcurl - даже еще не начала попытку Connect() к удаленному серверу.
Я вообще тогда не понимаю, что этот «CURL_POLL_IN» значит и как на него реагировать.