在Qt找到免费的港口

时间:2017-05-22 11:53:37

标签: qt qt5

我想在Qt 5.8中找到自由端口。我写了下面的代码,当没有配置Windows中的代理服务器时,该代码工作正常。如果我们使用" IP地址配置代理服务器"和" port"然后下面的代码不起作用,它给出"操作不被允许"当我们绑定套接字时。

QTcpSocket socket;
quint16 port = 0L;
socket.bind(0, QTcpSocket::ShareAddress);
port = socket.localPort();

这里" port"将给出正确的端口但是当我们配置代理服务器时它会给出" 0"作为端口号。

您能否在上面的代码中找出错误或者在localhost上找到自由端口的替代方法?

先谢谢。

1 个答案:

答案 0 :(得分:1)

如果这是一个客户端,则不需要实际绑定端口(如果这是一个服务器,你真的不想使用随机端口,你可能想看看QTcpServer)。您可以使用connectToHost(),它将为您分配一个可用的源端口。