почему curl_easy_send не возвращает тайм-аут при потере сети

0

Я написал приложение, подобное образцу sendrecv libcur (образец URL: http://curl.haxx.se/libcurl/c/sendrecv.html). разница в том, что мое приложение повторяет отправку/получение навсегда в потоке цикла. добавить другие параметры:

    code =curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1L);
    code =curl_easy_setopt(m_curl, CURLOPT_CONNECTTIMEOUT, 1L);
    code =curl_easy_setopt(m_curl, CURLOPT_TCP_NODELAY, 1L);  
    //code =curl_easy_setopt(m_curl, CURLOPT_TIMEOUT_MS, 200);//200 milli secs
    code =curl_easy_setopt(m_curl, CURLOPT_TIMEOUT, 1L);

но когда сеть потеряна, например, кабель вытащен из интерфейса netcard. curl_easy_send всегда возвращает CURLE_OK. Кажется, что CURLOPT_TIMEOUT не влияет. Есть ли какие-либо ошибки в использовании или другие проблемы? Что делать, если я хочу знать, что сеть потеряна немедленно.

  • 0
    Возможно, я неправильно понимаю libcurl. возможно curl_easy_send только вызывает метод send BSD Socket.
Теги:
libcurl
timeout

1 ответ

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

CURLOPT_TIMEOUT не влияет на curl_easy_send().

  • 0
    Что я должен делать ? Сделайте некоторую проверку в приложении - такой как механизм сердцебиения.

Ещё вопросы

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