用qt实现网络通信的简易代码
时间: 2024-03-01 21:51:41 浏览: 62
以下是使用 QTcpSocket 类实现基于 TCP 协议的客户端和服务器端通信的简易代码:
客户端代码:
```cpp
#include <QtNetwork>
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTcpSocket socket;
socket.connectToHost("127.0.0.1", 1234); // 连接到服务器
if (socket.waitForConnected()) { // 等待连接成功
socket.write("Hello, server!"); // 发送数据
socket.waitForBytesWritten(); // 等待数据发送完成
socket.waitForReadyRead(); // 等待接收数据
qDebug() << socket.readAll(); // 打印接收到的数据
}
return app.exec();
}
```
服务器端代码:
```cpp
#include <QtNetwork>
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTcpServer server;
server.listen(QHostAddress::Any, 1234); // 监听连接
QObject::connect(&server, &QTcpServer::newConnection, [&]() {
QTcpSocket *socket = server.nextPendingConnection(); // 接收连接
if (socket->state() == QTcpSocket::ConnectedState) {
qDebug() << "Client connected!";
socket->waitForReadyRead(); // 等待接收数据
qDebug() << socket->readAll(); // 打印接收到的数据
socket->write("Hello, client!"); // 发送数据
socket->waitForBytesWritten(); // 等待数据发送完成
socket->disconnectFromHost(); // 断开连接
}
});
return app.exec();
}
```
这段代码实现了一个简单的客户端和服务器端通信,客户端连接到服务器,发送数据后等待接收服务器的响应,服务器接收到客户端的连接请求后,接收数据并发送响应后断开连接。需要注意的是,这段代码只是一个简单的示例,实际应用中需要考虑更多的细节和异常情况。
阅读全文