
curl_multi_info_read 함수는 멀티플렉싱된 HTTP 커넥션에서 이벤트를 읽어오는 함수입니다.
이 함수를 사용하기 위해서는 먼저 멀티플렉싱된 HTTP 커넥션을 생성해야 합니다. curl_multi_init 함수를 사용하여 멀티플렉싱된 HTTP 커넥션을 생성하고, curl_multi_add_handle 함수를 사용하여 커넥션을 추가합니다.
curl_multi_info_read 함수를 사용할 때는 다음 조건을 만족해야 합니다.
- 멀티플렉싱된 HTTP 커넥션이 생성되어 있어야 합니다.
- 커넥션에 이벤트가 발생해야 합니다. 예를 들어, 데이터가 다운로드되거나, 커넥션이 종료될 때 등.
- curl_multi_info_read 함수를 호출하기 전에 curl_multi_select 함수를 호출하여 이벤트가 발생한 커넥션을 식별해야 합니다.
curl_multi_info_read 함수를 사용하여 이벤트를 읽어오면, 함수는 이벤트의 유형과 관련된 정보를 반환합니다. 예를 들어, 데이터가 다운로드되면, 함수는 다운로드된 데이터의 크기와 관련된 정보를 반환합니다.
curl_multi_info_read 함수를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
c
#include
int main() {
CURL *curl;
CURLM *multi_handle;
CURLMsg *msg;
// 멀티플렉싱된 HTTP 커넥션 생성
curl_global_init(CURL_GLOBAL_DEFAULT);
multi_handle = curl_multi_init();
// 커넥션 추가
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
curl_multi_add_handle(multi_handle, curl);
// 이벤트 발생 대기
curl_multi_select(multi_handle);
// 이벤트 읽어오기
while ((msg = curl_multi_info_read(multi_handle, NULL)) != NULL) {
if (msg->msg == CURLMSG_DONE) {
// 데이터가 다운로드되었습니다.
printf("다운로드 완료: %d 바이트n", msg->data.result);
}
}
// 커넥션 종료
curl_multi_cleanup(multi_handle);
curl_easy_cleanup(curl);
curl_global_cleanup();
return 0;
}
이 예제에서는 curl_multi_info_read 함수를 사용하여 다운로드된 데이터의 크기를 읽어옵니다.
2025-04-16 00:25