我正在研究一个需要向https服务器发送定期生动消息的项目。
由于安全问题,我们需要使用最少数量的端口(尽可能多地阻止未使用的端口)。
我正在使用c ++ libcurl easy接口在linux中发送https请求。
我尝试使用相同的curl处理程序对象(CURL对象)并将CURLOPT_LOCALPORT设置为端口号。第一个请求没问题。但是在第二种情况下,libcurl详细模式表示地址已经在使用中。 但是,当我通过CURLOPT_LOCALPORT注释掉端口集时,它也适用于第二个连接,并且通过将VERBOSE设置为1,我可以看到打印输出“重新使用现有连接”,这在版本设置本地端口时缺失。 我检查linux netstat,发现它使用的是同一个端口。 我无法弄清楚为什么设置本地端口会使其失败。
而且,我尝试使用curl_easy_cleanup关闭连接,但是由于tcp time_wait状态,我们暂时无法重用端口,这不是我想要的。
有人能为我们提供解决方案或建议吗?非常感谢。
修改 我使用一个端口的原因不是过多地保持打开和关闭连接。
答案 0 :(得分:1)
由于安全问题......
没有安全问题。您需要克服这种关于使用多个本地出站端口的恐惧症。使用更少或以任何方式约束它们没有任何安全益处。