为什么当网络丢失时curl_easy_send不会返回超时

时间:2013-11-01 15:35:17

标签: c++ timeout libcurl

我写了一个像libcur的sendrecv样本的应用程序(示例网址是: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);

但是当网络丢失时,例如电缆从网卡接口拔出。 curl_easy_send总是返回CURLE_OK。这似乎CURLOPT_TIMEOUT没有效果。是否存在使用错误或其他问题?如果我想知道网络立即丢失应该怎么办。

1 个答案:

答案 0 :(得分:0)

CURLOPT_TIMEOUT对curl_easy_send()没有影响。