我想在Qt 5.8中找到自由端口。我写了下面的代码,当没有配置Windows中的代理服务器时,该代码工作正常。如果我们使用" IP地址配置代理服务器"和" port"然后下面的代码不起作用,它给出"操作不被允许"当我们绑定套接字时。
QTcpSocket socket;
quint16 port = 0L;
socket.bind(0, QTcpSocket::ShareAddress);
port = socket.localPort();
这里" port"将给出正确的端口但是当我们配置代理服务器时它会给出" 0"作为端口号。
您能否在上面的代码中找出错误或者在localhost上找到自由端口的替代方法?
先谢谢。
答案 0 :(得分:1)
如果这是一个客户端,则不需要实际绑定端口(如果这是一个服务器,你真的不想使用随机端口,你可能想看看QTcpServer)。您可以使用connectToHost(),它将为您分配一个可用的源端口。