c++ - libcurl 使用相同的用户定义端口发送定期请求

标签 c++ curl https port libcurl

我正在做一个项目,需要定期向 https 服务器发送事件消息。

由于安全问题,我们需要使用最少数量的端口(尽可能多地阻止未使用的端口)。

我正在使用 C++ libcurl 简易接口(interface)在 Linux 中发送 https 请求。

我尝试使用相同的 curl 处理程序对象(CURL 对象)并将 CURLOPT_LOCALPORT 设置为端口号。第一个请求没问题。但在第二种情况下,libcurl 详细模式表示地址已在使用中。 但是,当我注释掉通过 CURLOPT_LOCALPORT 设置的端口时,它也适用于第二个连接,并且通过将 VERBOSE 设置为 1,我可以看到打印出“重新使用现有连接”,这在设置本地端口的版本中是缺失的。 我检查了 linux netstat,发现它正在使用相同的端口。 我不明白为什么设置本地端口会导致失败。

此外,我尝试使用 curl_easy_cleanup 关闭连接,但由于 tcp time_wait 状态,我们暂时无法重用该端口,这不是我想要的。

谁能给我们提供解决方案或建议?非常感谢。

编辑 我使用一个端口的原因是不要过多地打开和关闭连接。

最佳答案

Because of the security issue ...

没有安全问题。您需要克服使用多个本地出站端口的恐惧症。使用更少或以任何方式限制它们的安全性优势为零。

关于c++ - libcurl 使用相同的用户定义端口发送定期请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36445189/

相关文章:

c++ - 关于包含带有 guard 的头文件

c++ - 将 shared_ptr 用于 private_key 时出现段错误

c++ - 如何调试apache?我在哪里可以找到核心转储

c++ - 类不可访问指针

ssl - 关于 Curl SSL 证书、加密的问题

ssl - CURL 显示 "No required SSL certificate was sent"前夕

php - cURL 响应不可读

c# - 从 ssl 上的浏览​​器访问在本地主机上运行的 SignalR 应用程序

web-services - Coldfusion - HTTPS 错误/X.509 ws-security

google-app-engine - 非默认版本的 appspot.com 子域上的 SSL