我有一个客户端可以自己管理套接字连接(实际上使用libevent
的bufferevent
)。现在,我想使用 libcurl
在该套接字上生成和发送 HTML GET
请求。我通过喂食libcurl
完成了这部分,我已经使用OPENSOCKET_FUNCTION
选项打开的插座。
但是我的问题是现在libevent
和libcurl
都在侦听套接字,有时当套接字有数据时,libevent
谁接听,有时是libcurl
.
有没有办法告诉libcurl只生成并发送URL的GET
请求,而不是监听套接字,这样我就可以在libcurl
套接字中写入url后将事情掌握在手中?
显然,我正在使用 curl_mult
i 接口作为非阻塞套接字,否则curl_easy_perform
在收到答案之前不会返回。
我不想让bufferevent
侦听器离开并留在libcurl
,因为它是一个多协议程序,我正在实现它的http部分。其他协议没有使用libcurl
的奢侈,所以我需要保持bufferevent
结构。
您可能正在寻找 curl_multi_socket_action() 函数。该函数与 libevent 一起使用的示例由 hiperfifo.c 源代码中的 curl 提供。