qt TCP服务器示例
时间: 2023-11-20 11:05:00 浏览: 74
Qt TCP例程
以下是一个简单的QT TCP服务器示例,它将监听本地主机上的端口并接受来自客户端的连接请求。一旦连接成功,服务器将读取客户端发送的消息并将其原样发送回去。
```cpp
#include <QTcpServer>
#include <QTcpSocket>
class MyTcpServer : public QTcpServer
{
Q_OBJECT
public:
MyTcpServer(QObject *parent = nullptr) : QTcpServer(parent) {}
protected:
void incomingConnection(qintptr socketDescriptor) override
{
// 创建新的 socket
QTcpSocket *socket = new QTcpSocket(this);
// 将 socket 连接到客户端
if (!socket->setSocketDescriptor(socketDescriptor)) {
socket->deleteLater();
return;
}
// 监听 socket 的 readyRead 信号
connect(socket, &QTcpSocket::readyRead, this, [socket]() {
QByteArray data = socket->readAll();
socket->write(data);
});
// 监听 socket 的 disconnected 信号
connect(socket, &QTcpSocket::disconnected, this, [socket]() {
socket->deleteLater();
});
}
};
```
在应用程序中,您可以像这样启动服务器:
```cpp
MyTcpServer server;
if (!server.listen(QHostAddress::LocalHost, 1234)) {
qDebug() << "Unable to start the server: " << server.errorString();
return -1;
} else {
qDebug() << "Server started on port " << server.serverPort();
}
```
此示例监听本地主机上的端口1234。您可以将其更改为任何您喜欢的端口。
阅读全文