我正在做一个项目,需要定期向 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/