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

问题描述 投票:0回答:1

抄袭这里描述的主题(Using libcurl multi interface for consecutive requests for same "easy" handle),我的组织有select和poll的包装类来处理文件描述符的输入/输出。为了与我们的包装类保持一致,我想获得每个简单句柄的文件描述符。我正在使用多接口在实时应用程序中使用多个简易句柄。

我知道我可以使用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中获得了不同的结果。

有没有其他方法从简单的句柄获取文件描述符?

libcurl
1个回答
0
投票

我建议你转换并使用multi_socket API,而curl_multi_socket_action是主要的驱动程序。

这个API调用你来告诉你每个等待的套接字,然后你等待那个/那些并告诉libcurl当套接字上发生了什么。它允许您非常轻松地将libcurl合并到您自己的IO循环/套接字包装器系统中。

© www.soinside.com 2019 - 2024. All rights reserved.