用qt写一段代码实现一台电脑上的上位机向另一台电脑上的上位机发送自定义的枚举中的数,另一台电脑接收该数据
时间: 2024-03-25 11:36:24 浏览: 108
好的,以下是一个示例代码,演示如何使用Qt实现从一台电脑上的上位机向另一台电脑上的上位机发送自定义的枚举中的数,并在另一台电脑上接收该数据:
发送端代码:
```cpp
#include <QtNetwork/QTcpSocket>
#include <QDataStream>
// 自定义枚举类型
enum MyEnum {
Zero = 0,
One = 1,
Two = 2
};
int main(int argc, char *argv[])
{
// 创建Qt应用程序
QApplication app(argc, argv);
// 创建TCP套接字
QTcpSocket socket;
// 连接服务器
socket.connectToHost("192.168.0.2", 1234);
// 等待连接成功
if (socket.waitForConnected()) {
// 创建一个数据流
QDataStream out(&socket);
// 设置流的版本号
out.setVersion(QDataStream::Qt_5_15);
// 发送枚举类型的数据
out << One;
}
// 退出应用程序
return app.exec();
}
```
接收端代码:
```cpp
#include <QtNetwork/QTcpServer>
#include <QtNetwork/QTcpSocket>
#include <QDataStream>
// 自定义枚举类型
enum MyEnum {
Zero = 0,
One = 1,
Two = 2
};
int main(int argc, char *argv[])
{
// 创建Qt应用程序
QApplication app(argc, argv);
// 创建TCP服务器
QTcpServer server;
// 监听端口
server.listen(QHostAddress::Any, 1234);
// 等待客户端连接
while (true) {
// 如果有新连接,就处理它
if (server.hasPendingConnections()) {
// 获取客户端连接
QTcpSocket *socket = server.nextPendingConnection();
// 创建一个数据流
QDataStream in(socket);
// 设置流的版本号
in.setVersion(QDataStream::Qt_5_15);
// 接收枚举类型的数据
MyEnum value;
in >> value;
// 处理接收到的数据
switch (value) {
case Zero:
// 处理枚举类型为0的情况
break;
case One:
// 处理枚举类型为1的情况
break;
case Two:
// 处理枚举类型为2的情况
break;
}
}
}
// 退出应用程序
return app.exec();
}
```
以上代码演示了如何创建一个TCP服务器并监听端口,等待客户端连接。当有新的客户端连接时,我们创建一个数据流并接收枚举类型的数据。然后,我们根据接收到的枚举类型的值来处理不同的情况。
注意:这是一个简单的示例,实际应用中需要考虑更多的异常情况和错误处理。
阅读全文