您的位置:首页 > 编程语言 > Qt开发

关于Qt5发送udp协议数据

2020-02-16 21:01 344 查看

我们需要利用Qt5发送TCP/UDP的协议数据的问题,这里稍微做个记录。

通信协议(这里只是举例)

协议格式
Version(1 字节) Mode(4 字节) Message(4字节)

首先我们构建数据结构体

#pragma pack(push) //保存对齐状态
#pragma pack(1)//设定为1字节对齐
struct type_header
{
    char version;
    int mode;

    int data;
};
//__attribute__((packed));
#pragma pack(pop)//恢复对齐状态
typedef struct type_header header_packet;

QT5头文件为 #include <QtEndian>

header_packet pkts;

pkts.header.version = 0x01;
pkts.header.mode = qFromBigEndian(0x00010200);

这样就可以通过调用TCP/UDP的接口函数将协议数据发送出去了。

主要是注意两点:

一、协议数据要保持1字节对其,防止发送出去的数据报文与协议规定的不匹配。

二、注意QT5下的网络转本地与本地转网络的函数qFromBigEndian的问题。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
lovehhliu 发布了3 篇原创文章 · 获赞 0 · 访问量 191 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: