Я использую libcurl
для создания http-соединения с сервером.Во время инициализации я указал значение времени ожидания 5 секунд, а также определил функцию обратного вызова прогресса.Я ожидал, что cURL прервет соединение через 5 секунд бездействия и прекратит вызывать обратный вызов хода выполнения, но обнаружил, что время ожидания завитка истекло примерно через 15 секунд.Почему curl тратит больше времени на тайм-аут, чем я, что я указал?Установка таймаута на большее значение не помогает.Если я укажу 100 секунд, это время ожидания после 105 секунд бездействия.
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_NOPROGRESS, 0);
assert(code == CURLE_OK);
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_PROGRESSFUNCTION, progress_callback);
assert(code == CURLE_OK);
РЕДАКТИРОВАТЬ: Код таймаута
//this will set the timeout for quitting in case the network goes down
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_LOW_SPEED_LIMIT, 1);
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_LOW_SPEED_TIME, m_idle_timeout);