libcurl:如何从活动连接获取文件描述符?

时间:2019-02-13 01:00:35

标签: libcurl

在这里描述的主题(Using libcurl multi interface for consecutive requests for same "easy" handle)上搭载,我的组织具有用于选择和轮询的包装器类,以处理文件描述符的输入/输出。为了与我们的包装器类保持一致,我想获取每个简单句柄的文件描述符。我正在使用多接口在实时应用程序中使用多个简单的句柄。

我知道我可以使用curl_multi_fd_set获取FD集。我可以遍历FD集以获得FD号。但是,我不知道FD的相关简易句柄。此外,如果打开的FD超出FD_SET限制,我将不会获得该FD。

我正在考虑的另一个选项是使用curl_easy_getinfo并使用ACTIVESOCKET或LASTSOCKET选项。我的libcurl很旧,因此无法使用ACTIVESOCKET进行测试。但是,我使用curl_multi_perform进行了一些测试,然后使用curl_easy_getinfo(LASTSOCKET)给了我-1的结果-意味着没有文件描述符。易处理的请求是在google.com等网站上执行的。我将尝试将我的libcurl更新到较新的版本,以查看是否通过ACTIVESOCKET获得了不同的结果。

还有另一种方法可以从简单的句柄中获取文件描述符吗?

1 个答案:

答案 0 :(得分:0)

我建议您切换并使用multi_socket API作为主要驱动程序,而改为使用curl_multi_socket_action

此API调用您告诉您每个套接字要等待的情况,然后您等待该套接字,并告诉libcurl该套接字发生了什么事情。它使您可以轻松地将libcurl合并到自己的IO循环/套接字包装器系统中。