qt实现客户端和服务端相互发送接收信息的代码
时间: 2023-11-09 11:05:36 浏览: 56
以下是一个简单的 Qt 客户端和服务端实现互相发送接收信息的示例代码:
服务端代码:
```cpp
#include <QTcpServer>
#include <QTcpSocket>
int main(int argc, char *argv[])
{
QTcpServer server;
server.listen(QHostAddress::Any, 12345); // 监听所有可用的网络接口上的 12345 端口
QObject::connect(&server, &QTcpServer::newConnection, [&]()
{
QTcpSocket *socket = server.nextPendingConnection(); // 获取新连接的套接字
QObject::connect(socket, &QTcpSocket::readyRead, [&]()
{
QByteArray recvData = socket->readAll(); // 读取接收到的数据
qDebug() << "Recv:" << recvData;
socket->write(recvData); // 回复接收到的数据
});
});
return app.exec();
}
```
客户端代码:
```cpp
#include <QTcpSocket>
int main(int argc, char *argv[])
{
QTcpSocket socket;
socket.connectToHost("127.0.0.1", 12345); // 连接到 localhost 上的 12345 端口
QObject::connect(&socket, &QTcpSocket::connected, [&]()
{
QByteArray sendData = "Hello, server!"; // 要发送的数据
socket.write(sendData); // 发送数据
});
QObject::connect(&socket, &QTcpSocket::readyRead, [&]()
{
QByteArray recvData = socket.readAll(); // 读取接收到的数据
qDebug() << "Recv:" << recvData;
});
return app.exec();
}
```
在运行上述代码之前,需要在项目的 .pro 文件中添加以下代码:
```pro
QT += network
```
这样才能使用 Qt 的网络模块。