关于Qt5发送udp协议数据

我们需要利用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

header_packet pkts;

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

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


主要是注意两点:

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

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

你可能感兴趣的:(嵌入式系统开发)