有没有一种平台无关的方法在Qt中获取未使用的TCP端口?我的需求是启动一个现有的应用程序,必须给它一个开放的TCP端口才能让它工作。
使用QTcpServer是更简单的方法。
bool QTcpServer::listen(const QHostAddress & address = QHostAddress::Any, quint16 port = 0)
如果port
为0,则会自动选择一个端口,然后您可以使用quint16 QTcpServer::serverPort() const
获取“空闲”端口
然后关闭您的Tcp服务器
或者
生成一个随机端口,使用QTcpSocket
连接它(本地连接)
QTcpSocket::localPort()
并关闭此TCP套接字你是指一种tcp服务器吗?那么可以使用QTcpServer类。
如果你想启动一个已存在的服务器,那么你需要使用QProcess类。例如:
QString program = "path/to/server";
QStringList arguments;
arguments << "-p" << "1234"; //or what ever you want
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);
QProcess
类。 - Evgeny