Я не знаю, действительно ли вы имели в виду «одновременный», но из описания я считаю, что вы просто хотите повторно использовать соединение. Если вы просто perform
два запроса к одному и тому же серверу, он должен повторно использовать соединение
persistant.c
/* get the first document */
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
res = curl_easy_perform(curl);
/* get another document from the same server using the same
connection */
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/docs/");
res = curl_easy_perform(curl);
Вот части вывода:
* About to connect() to example.com port 80 (#0)
* Trying 192.0.32.10... * connected
* Connected to example.com (192.0.32.10) port 80 (#0)
[...]
* HTTP/1.0 connection set to keep alive!
< Connection: Keep-Alive
Connection: Keep-Alive
[...]
* Connection #0 to host example.com left intact
* Re-using existing connection! (#0) with host example.com
* Connected to example.com (192.0.32.10) port 80 (#0)
РЕДАКТИРОВАТЬ В свете комментария
В этом случае вам необходим интерфейс multi
. Интерфейс multi
говорит:
Включение нескольких одновременных передач в одном потоке без
делая это сложным для
применение.
Например, см. multi-double.c
(" Просто загрузите два файла HTTP! ").