qt creater 怎么实现多机通信
时间: 2024-01-25 13:03:44 浏览: 16
Qt Creator本身并不提供多机通信功能,但你可以Qt网络模块提供的类来实现多机通信。以下是一个简单的示例代码,演示如何在两台计算机之间进行消息传递:
服务器端:
```cpp
#include <QtNetwork>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTcpServer server;
server.listen(QHostAddress::Any, 1234); // 监听所有可用的地址和端口
qDebug() << "Server started.";
while (true) {
QTcpSocket *socket = server.nextPendingConnection(); // 等待客户端连接
qDebug() << "Client connected from " << socket->peerAddress().toString();
QByteArray bytes = socket->readAll();
qDebug() << "Received: " << bytes;
socket->write("Hello from server!"); // 发送消息给客户端
socket->flush();
socket->waitForBytesWritten();
socket->close();
}
return a.exec();
}
```
客户端:
```cpp
#include <QtNetwork>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTcpSocket socket;
socket.connectToHost("192.168.0.100", 1234); // 连接服务器
if (socket.waitForConnected()) { // 等待连接成功
qDebug() << "Connected to server.";
socket.write("Hello from client!"); // 发送消息给服务器
socket.flush();
socket.waitForBytesWritten();
QByteArray bytes = socket.readAll();
qDebug() << "Received: " << bytes;
socket.close();
} else {
qDebug() << "Failed to connect to server.";
}
return a.exec();
}
```
注意,需要根据实际情况修改服务器端的监听地址和端口,以及客户端的连接地址和端口。同时,需要保证服务器端和客户端在同一局域网内,才能成功建立连接。