gpt4 book ai didi

c++ - 如何不在 curl_easy_perform() 上重新使用现有连接,在互联网连接更改时挂起

转载 作者:行者123 更新时间:2023-11-28 01:55:20 25 4
gpt4 key购买 nike

详细的,我注意到输出:

第一次运行结束时:

* Connection #0 to host www.example.com left intact

在第二次运行开始时:

* Found bundle for host www.example.com: 0x24e3360 [can pipeline]
* Re-using existing connection! (#0) with host www.example.com

我想要一种重新使用现有连接,或者在使用现有连接之前进行验证的方法。

其他详细信息:

我正在使用 libCurl“简单”界面执行一些简单的网页下载。我有一个类在它的构造函数中初始化并设置一些选项。在执行方法中,我添加了 url 选项,然后执行 curl_easy_perform(...)。

尝试使用我的类进行操作时,我注意到:

  • 如果第一个操作是离线的,下一个操作就像离线一样(即使是在线的)
  • 如果第一个操作在线,然后关闭互联网连接,则在下一个操作中,curl_easy_perform(...) 挂起并且永远不会返回。

我想要基于当前互联网连接的更合适的行为和操作。 (我试过清理并重新初始化+执行方法中的选项设置,这有效,但这似乎有点浪费。)

最佳答案

我选择了:

curl_easy_setopt(myEasy_handle, CURLOPT_FORBID_REUSE, 1);

我在我的类的构造函数中添加了一次设置。这可能会减慢操作速度,但它似乎可以完成这项工作,并且可能比清理和重新初始化更快,或者使用另一个与某些服务器的单独连接来检查互联网连接。

我使用它是因为它看起来比我程序的其他选项更合适。我为此查看的两个有用链接如下:link1 , link2 .

编辑:

我还添加了选项 CURLOPT_TIMEOUT 以设置在停止前等待多长时间的硬性限制 - 如果在 easy_perform 期间,互联网连接中断。

关于c++ - 如何不在 curl_easy_perform() 上重新使用现有连接,在互联网连接更改时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41419388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com