在Qt中是否有一种独立于平台的方式来获取未使用的TCP端口?我需要启动一个现有的应用程序,必须给它一个开放的TCP端口才能使它工作。
答案 0 :(得分:5)
使用QTcpServer更简单。
bool QTcpServer::listen(const QHostAddress & address = QHostAddress::Any, quint16 port = 0)
如果port
为0,则自动选择port
,然后使用quint16 QTcpServer::serverPort() const
获取“空闲”端口
然后关闭您的Tcp服务器
OR
生成一个ramdom端口,使用QTcpSocket
连接它(本地连接)
QTcpSocket::localPort()
并关闭此tcp套接字答案 1 :(得分:0)
你的意思是某种tcp服务器?然后是QTcpServer类。
如果要启动existiong服务器,则需要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);