2016-08-31 7 views
1

이의 당신이libcurl에서 파이프 라인 - 멀티 수행하는 동안 새 URL을 추가

curl_easy_setopt(pCurl, CURLOPT_URL, url); 
curl_multi_add_handle(pCurlMulti, pCurl); 
curl_multi_perform(...) 

// 대기 // 동안 지금 우리는 우리가 부를 수있는, 서버의 응답을 기다리고 있습니다

있다고 가정 해 봅시다 진행
curl_easy_setopt(pCurl, CURLOPT_URL, newUrl); 

// without curl_multi_remove_handle & curl_multi_add_handle?

답변

1

아니요, 활성 전송의 URL을 변경하지 마십시오. 대신 enable pipelining on the multi handle을 입력 한 다음 각 전송에 대해 하나의 쉬운 핸들을 추가하십시오. 가능한 경우 멀티 핸들은 동일한 연결을 통해 요청을 파이프 라인합니다.

+0

답변 해 주셔서 감사합니다. 따라서 이전 요청이 아직 보류 중일 때 새로운 요청을 대기열에 추가해야한다면 새 URL로 새 손쉬운 핸들을 만들고 멀티에 추가 할 수 있습니까? 그게 최선의 방법인가요? – user5266221

+0

예. 서버가 파이프 라이닝을 지원하고 멀티 핸들에 해당 옵션을 사용하도록 설정 한 경우 자동으로 동일한 연결을 공유합니다. –

+0

양쪽 끝이 HTTP/2를 할 수있는 경우에, 곱슬 곱슬하게 (동일한 옵션을 사용하여) 멀티플렉싱을 요청하면 후속 전송이 즉시 시작되어 병렬로 수행 될 수 있습니다. –