Как закрыть клиентское соединение средствами библиотеки libevent (на с++) после получения ответа от сервера, чтобы файловый дескриптор используемый соединением освободился?
Схема по которой происходит отправка запроса:
struct evhttp_connection *conn;
struct evhttp_request *req;
conn = evhttp_connection_new(addr, port);
evhttp_connection_set_timeout(conn, timeout);
evhttp_connection_set_retries(conn, count_of_retry_sending);
evhttp_connection_free_on_completion(conn);
evhttp_connection_set_closecb(conn, callback_close_connection, nullptr);
// привязка обработчика ответа к соединению
req = evhttp_request_new(response_handler, static_cast<void*>(context));
// заполнение выходного буфера данными
// ......
// отправка запроса
evhttp_make_request(conn, req, EVHTTP_REQ_POST, resource);
При просмотре под отладчиком захода в callback_close_connection обнаружил, что закрытие соединения происходит минут через 5 после ответа от сервера. Непонятно почему соединение не закрывается сразу после получения ответа.
Нашел решение. Убрал строчки:
evhttp_connection_free_on_completion(conn);
evhttp_connection_set_retries(conn, count_of_retry_sending);
Указатель на соединение передал в функцию обработчик ответа от сервера, где вызывал по окончании обработки evhttp_connection_free(conn);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Понадобилась 64-битная версия Qt4 под WindowsНе получается скомпилировать Qt
Всем привет, помогите пожалуйста с asciiСуть программы: шифрование и дешифрование сообщений
Трабла в том, что ругается на (path[i] == '\')Как это провернуть?Спасибо) Вот сам код: