在windows中获取下一个打开的TCP端口

get next open tcp port in windows

本文关键字:TCP 端口 下一个 windows 获取      更新时间:2023-10-16

如何在windows上获得下一个开放的tcp端口
我搜索了网络,我遇到了用Qt编写的TcpPortsGatherer…
唯一的问题是,它在我目前的Qt版本不可用,或者它应该用作插件
所以我正在寻找一种方法来使用TcpPortsGatherer类
或者直接使用本地Windows库(如果有的话)

更新:

我已经使用塞巴斯蒂安的方法像下面绑定找到的端口到一个外部二进制,我运行,但它总是分配端口1025到可执行文件,我怎么能解决这个问题?

QTcpSocket *socket = new QTcpSocket();
qint16 port = 1025;
while(!socket->bind(port, QAbstractSocket::DontShareAddress))
  port++;
socket->close();
socket->deleteLater();

只需指定端口0并绑定。系统会给你下一个可用的端口。不需要循环

您可以尝试使用QTcpSocket::bind()。如果端口打开成功,它将返回bool(true)。

QTcpSocket *socket = new QTcpSocket();
qint16 port = 1025;
while(!socket->bind(port, QAbstractSocket::DontShareAddress))
{
  port++;
}