怎样才能在windows上获得下一个打开的tcp端口
我search了networking,我碰到了用Qt写的TcpPortsGatherer。
唯一的问题是,它不能在我目前的Qt版本或它应该被用作插件
所以我正在寻找一种使用TcpPortsGatherer类的方法
或者只是使用本地Windows库(如果有的话)
更新:
我已经使用塞巴斯蒂安的方法如下,将发现的端口绑定到我运行的外部二进制文件,但它始终将端口1025分配给可执行文件,我该如何解决这个问题?
QTcpSocket *socket = new QTcpSocket(); qint16 port = 1025; while(!socket->bind(port, QAbstractSocket::DontShareAddress)) port++; socket->close(); socket->deleteLater();
你可以尝试使用QTcpSocket::bind()
。 如果端口打开成功,它将返回一个bool(true)。
QTcpSocket *socket = new QTcpSocket(); qint16 port = 1025; while(!socket->bind(port, QAbstractSocket::DontShareAddress)) { port++; }
套接字现在绑定到端口。
只需指定端口零和绑定。 系统会给你下一个可用的端口。 不需要循环。