【发布时间】:2023-03-04 01:58:01
【问题描述】:
详细,我注意到输出:
在第一次运行结束时:
* 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 'easy' 界面执行一些简单的网页下载。我有一个类,它在它的构造函数中初始化并设置了一些选项。在 perform 方法中,我添加了 url 选项,然后执行 curl_easy_perform(...)。
尝试使用我的班级进行操作,我注意到:
- 如果第一个操作处于脱机状态,则下一个操作就像脱机一样(即使在线)
- 如果第一次操作在线,然后关闭互联网连接,在下一次操作中,curl_easy_perform(...) 将挂起并且永远不会返回。
我想要基于当前互联网连接的更合适的行为和操作。 (我已经尝试在 perform 方法中清理并重新初始化 + 选项设置,这可行,但这似乎有点浪费。)
【问题讨论】:
-
猜测一下,这是使用“简单”方法的代价;您不必处理错误情况,但随后会以您不希望的方式处理错误情况。您是否考虑过使用非“简单”的方法来解决您的问题?如果是这样,出了什么问题?