当前位置:网站首页>Qt处理传输协议数据时QByteArray添加多字节的使用案例
Qt处理传输协议数据时QByteArray添加多字节的使用案例
2022-08-02 03:43:00 【新潮技术研究社】
这里主要是记录一下在传输过程中,无论tcp,udp,还是其他什么协议,我们肯定会遇到各种字段不统一字节数的情况。
譬如,字段1是1个字节,字段2是两个字节,字段3是4个字节,以此类推,可能里面还有8个字节的字段
如果你要sizeof(这个结构体或者是数据类),那么得到的就是结构体中最大的那个数据的类型的字节数。
一般我们传输时,经常会用到char*,大部分人可能还在使用memcpy的方式,这里不说其他,先说QByteArray的使用。
//devId数组是3个字节,str为一个16进制数字字符串,如:“345434”,实现将str放入devId中
QByteArray hexData = QByteArray::fromHex(str.toLocal8Bit());
QDataStream stream(hexData);
stream.setByteOrder(QDataStream::BigEndian);
uint8_t a,b,c;
stream>>a>>b>>c;
qDebug()<<"abc="<<a<<b<<c;
devId[0] = a;
devId[1] = b;
devId[2] = c;
QByteArray byteArr;
quint16 aa;
QDataStream out(&byteArr,QIODevice::WriteOnly | QIODevice::Append );
stream.setByteOrder(QDataStream::BigEndian);
out << aa;
//byteArr已经添加了aa这个2字节整型了。
如果这里你是整个协议数据的话,那么out一直往下添加即可。
out << bb << cc << dd << ff << hh;
边栏推荐
- 如何让固定点的监控设备在EasyCVR平台GIS电子地图上显示地理位置?
- ESP32-C5 简介:乐鑫首款双频 Wi-Fi 6 MCU
- nr部分计算
- 科研笔记(八) 深度学习及其在 WiFi 人体感知中的应用(下)
- 日本痴汉打赏女主播1.5亿,结果。。。
- [Win11] PowerShell无法激活Conda虚拟环境
- 树莓派4B安装OPENCV遇到ffmpeg库版本太高的问题【后续更新】
- 面试官:大量请求 Redis 不存在的数据,从而打倒数据库,有什么方案?
- Batch normalization (BN) based on deep learning
- STM32/TMS320F2812+W5500硬软件调试总结
猜你喜欢
深蓝学院-视觉SLAM十四讲-第七章作业
Qt编写物联网管理平台49-设备模拟工具
数学建模学习(76):多目标线性规划模型(理想法、线性加权法、最大最小法),模型敏感性分析
计算属性的学习
3D目标检测之数据集
科研笔记(七) 基于路径规划和WiFi指纹定位的多目的地室内导航
SCI writing strategy - with common English writing sentence patterns
吴恩达机器学习系列课程笔记——第十五章:异常检测(Anomaly Detection)
arr的扩展方法、数组的遍历及其他方法
Your device is corrupt. It cant‘t be trusted and may not work propely.
随机推荐
迭代器与生成器
jetracer_pro_2GB AI Kit系统安装使用说明
使用docker-compose 安装Redis最新版,并且设置密码
Jetson Nano 2GB Developer Kit 安装说明
WIN10什么都没开内存占用率过高, WIN7单网卡设置双IP
ESP32-C5 简介:乐鑫首款双频 Wi-Fi 6 MCU
数据可视化之百变柱状图
MySQL8.0与MySQL5.7区别
树莓派上FFMPEG/VLC播放海康网络摄像仪视频
深蓝学院-视觉SLAM十四讲-第六章作业
吴恩达机器学习系列课程笔记——第十四章:降维(Dimensionality Reduction)
科研笔记(八) 深度学习及其在 WiFi 人体感知中的应用(下)
How to save a section of pages in a PDF as a new PDF file
吴恩达机器学习系列课程笔记——第九章:神经网络的学习(Neural Networks: Learning)
三维目标检测之OpenPCDet环境配置及demo测试
3D目标检测之数据集
Liunx服务环境部署
Nexus 5 phone uses Nexmon tool to get CSI information
多主复制的适用场景(2)-需离线操作的客户端和协作编辑
树莓派上QT连接海康相机