qt 实现tcp监听端口
时间: 2023-08-17 21:32:15 浏览: 375
要实现TCP监听端口,可以使用Qt中的QTcpServer类。以下是一个简单的示例代码:
```cpp
#include <QTcpServer>
#include <QTcpSocket>
// 创建一个QTcpServer对象
QTcpServer *server = new QTcpServer(this);
// 监听指定端口
if (!server->listen(QHostAddress::Any, 8888)) {
qDebug() << "Failed to start server!";
return;
}
qDebug() << "Server started on port" << server->serverPort();
// 监听新连接
connect(server, &QTcpServer::newConnection, [=]() {
// 获取新连接的socket
QTcpSocket *socket = server->nextPendingConnection();
qDebug() << "New client connected:" << socket->peerAddress().toString();
// 处理socket的数据
connect(socket, &QTcpSocket::readyRead, [=]() {
QByteArray data = socket->readAll();
qDebug() << "Received data:" << data;
// 回复数据
socket->write("Hello, client!");
socket->flush();
});
// 断开连接时删除socket
connect(socket, &QTcpSocket::disconnected, socket, &QTcpSocket::deleteLater);
});
```
上述代码创建了一个QTcpServer对象并监听了8888端口。当有新连接时,会创建一个QTcpSocket对象来处理该连接的数据。在这个示例中,当收到数据时会回复“Hello, client!”。
阅读全文