关于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 <QtEndian>

header_packet pkts;

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

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


主要是注意两点:

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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值