2017-03-01 3 views
3

멀티 파트 HTTP 응답에서 연속적인 데이터 흐름으로 응답하는 장치에 대해 HTTP GET 요청을 수행하려면 libCURL을 사용하고 있습니다.HTTP 멀티 파트 흐름을 수신하는 동안 libCURL 시간 초과가 발생했습니다.

저는 장치가 연결이 끊어져 있거나 종료되었거나 네트워크에서 더 이상 연결할 수없는 불행한 경우를 처리하고 싶습니다.
는 기본적으로 libcurl에 내가 필요로하는 몇 초 타임 아웃이없는, 그래서 시도 :

  1. 하지 동안 이미 데이터를 수신 연결 단계에서 CURLOPT_CONNECTTIMEOUT 옵션
    만이 비로소 작동을 설정.

  2. CURLOPT_TIMEOUT 옵션
    을 설정하지만,이 보인다 항상 데이터가 여전히 수신도 타임 아웃.

내 질문은 : 어떻게 위에서 설명한 경우 libCURL을 사용하여 시간 초과를 올바르게 처리 할 수 ​​있습니까? 시나리오 대신

curl_easy_setopt(curl, CURLOPT_TIMEOUT, <your timeout in seconds>); 

사용

curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 1); 
curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, <your timeout in seconds>); 

위의 두 줄의 경우

답변

2

이 있는지 확인 평균 속도가 X 초의 시간 프레임에서 초당 1 바이트 이하로 떨어지면 그, 작업이 중단됩니다 (시간 초과).

reference here을 참조하십시오.

관련 문제