Qt中QTcpServer服务端如何检测监听端口是否被占用,请给出具体代码
时间: 2023-06-18 19:04:12 浏览: 607
在Qt中,可以通过`QTcpServer`类的`listen()`函数来监听一个端口。如果该端口已经被占用,则`listen()`函数会返回`false`。可以通过检查`listen()`函数的返回值来判断端口是否被占用。
以下是一个检测端口是否被占用的示例代码:
```cpp
#include <QTcpServer>
#include <QHostAddress>
#include <QDebug>
int main(int argc, char *argv[])
{
Q_UNUSED(argc)
Q_UNUSED(argv)
QTcpServer server;
QHostAddress address{QHostAddress::LocalHost};
quint16 port{1234};
if (!server.listen(address, port)) {
qDebug() << "Error: " << server.errorString();
return 1;
}
qDebug() << "Server started. Listening on port " << port;
return 0;
}
```
在这个示例代码中,我们尝试监听本地主机的端口1234。如果该端口已经被占用,`listen()`函数会返回`false`,并且我们可以通过`server.errorString()`函数获取错误信息。
如果端口没有被占用,`listen()`函数会返回`true`,并且我们可以开始监听客户端的连接。
阅读全文