当前位置: 首页 > news >正文

印度做杂质的网站浉河网站建设

印度做杂质的网站,浉河网站建设,潮州网站网站建设,网站会员系统制作1.大小端数据简介 大小端(Endianness)是计算机体系结构的一个术语,它描述了多字节数据在内存中的存储顺序。以下是大小端的定义和它们的特点: 大端(Big-Endian) 在大端模式中,一个字的最高有效…

1.大小端数据简介

大小端(Endianness)是计算机体系结构的一个术语,它描述了多字节数据在内存中的存储顺序。以下是大小端的定义和它们的特点:

大端(Big-Endian)
在大端模式中,一个字的最高有效字节(MSB,即最左边的那位)存储在最低的内存地址处,而最低有效字节(LSB,即最右边的那位)存储在最高的内存地址处。

例如,假设有一个16位的数字 0x1234,其在内存中的存储顺序如下:

地址增加方向 -->

[ 12 ] [ 34 ]

其中 [12] 是高字节,存储在低地址处;[34] 是低字节,存储在高地址处。

小端(Little-Endian)
在小端模式中,情况正好相反:一个字的最低有效字节存储在最低的内存地址处,而最高有效字节存储在最高的内存地址处。

继续上面的例子,16位的数字 0x1234 在小端模式下的存储顺序如下:

地址增加方向 -->

[ 34 ] [ 12 ]

其中 [34] 是低字节,存储在低地址处;[12] 是高字节,存储在高地址处。

2.小端数据收发

假设我们现在有一个UDP头的数据结构如下所示。

    //UDP协议头typedef struct{quint16 type;               //报文类型quint16 num;                //报文序号,取值范围为0~65535quint32 len;                //报文长度quint16 srcAddr;            //信源地址quint16 dstAddr;            //信宿地址quint8  year;               //发送时间  年份后两位   UTC时间quint8  month;quint8  day;quint8  hour;quint8  minute;quint8  second;}UdpHeader;

数据发送:组包。

QByteArray pack(const Protocol::UdpHeader &header)
{QByteArray byte;byte.append((char*)&(header.type),2);byte.append((char*)&(header.num),2);byte.append((char*)&(header.len),4);byte.append((char*)&(header.srcAddr),2);byte.append((char*)&(header.dstAddr),2);QString format = "yy-MM-dd-hh-mm-ss";QDateTime dateTime = QDateTime::currentDateTime();dateTime.setTimeSpec(Qt::LocalTime);QDateTime utcTime = dateTime.toUTC();QString strUtcTime = utcTime.toString(format);QStringList timeList = strUtcTime.split('-');quint8 year = timeList.at(0).toInt();quint8 month = timeList.at(1).toInt();quint8 day = timeList.at(2).toInt();quint8 hour = timeList.at(3).toInt();quint8 minute = timeList.at(4).toInt();quint8 sec = timeList.at(5).toInt();byte.append(year);byte.append(month);byte.append(day);byte.append(hour);byte.append(minute);byte.append(sec);return byte;
}

数据接收:拆包

void unPack(const QByteArray &byte, Protocol::UdpHeader &header)
{if(byte.size() != UDP_HEADER_LEN){return;}memcpy(&header,byte.data(),sizeof(Protocol::UdpHeader));
}

3.大端数据收发

还是上面的头例子。
数据发送:组包。
使用QDataStream类作为辅助,设置setByteOrder为大端序列。

QByteArray packBigEndian(const Protocol::UdpHeader &header)
{QByteArray byte;QDataStream stream(&byte,QIODevice::WriteOnly);stream.setByteOrder(QDataStream::BigEndian);stream<<(header.type);stream<<(header.num);stream<<(header.len);stream<<(header.srcAddr);stream<<(header.dstAddr);QString format = "yy-MM-dd-hh-mm-ss";QDateTime dateTime = QDateTime::currentDateTime();dateTime.setTimeSpec(Qt::LocalTime);QDateTime utcTime = dateTime.toUTC();QString strUtcTime = utcTime.toString(format);QStringList timeList = strUtcTime.split('-');quint8 year = timeList.at(0).toInt();quint8 month = timeList.at(1).toInt();quint8 day = timeList.at(2).toInt();quint8 hour = timeList.at(3).toInt();quint8 minute = timeList.at(4).toInt();quint8 sec = timeList.at(5).toInt();stream<<year;stream<<month;stream<<day;stream<<hour;stream<<minute;stream<<sec;return byte;
}

数据接收:拆包。
对于多字节的数据,都需要单独使用qToBigEndian转换为大端。

void unPackBigEndian(const QByteArray &byte, Protocol::UdpHeader &header)
{if(byte.size() != UDP_HEADER_LEN){return;}memcpy(&header,byte.data(),sizeof(Protocol::UdpHeader));header.type = qToBigEndian(header.type);header.num= qToBigEndian(header.num);header.len= qToBigEndian(header.len);header.srcAddr= qToBigEndian(header.srcAddr);header.dstAddr= qToBigEndian(header.dstAddr);
}
http://www.yayakq.cn/news/854769/

相关文章:

  • 外贸网站建设 佛山软件开发具体是做什么
  • 网站风格包括什么网站建设市场推广招聘
  • 东莞网站建设+旅游大美互助app
  • 谁有做开档棉裤的网站啊设计制作长方体形状的包装纸盒视频
  • 网站设计项目策划ppt域名备案代理
  • 一流的上海网站建设公司wordpress免费企业网站
  • 有哪些官方网站做的比较好河南建设168工程网官方网站
  • 仿土豆网站源码建网站模板
  • 匿名聊天网站开发凡科外贸网站建设
  • 网站建设与维护怎么学建筑网站的功能模块
  • 深圳做公司英文网站多少钱广西壮族自治区住房和城乡建设厅
  • 南部建设局网站google chrome 网络浏览器
  • 网站开发最佳组合温州网站制作案例
  • 长沙公司做网站找哪个公司好字节跳动员工人数2019
  • 关于申请建设网站申请报告广东东远建设工程管理有限公司网站
  • 浦口国家建设部网站重庆市工程建设招投标交易中心网站
  • 明星网页设计模板图片南京怎样优化关键词排名
  • 六安哪家做网站不错推广网络网站
  • 推广网站优化怎么做泰安城建吧
  • 做任务有奖励的网站廊坊网站建设精灵
  • 明企科技网站建设系统wordpress 抓取
  • 有哪些做文创产品的网站关闭wordpress评论
  • 公司旅游视频网站模板免费下载西海岸新区城市建设局网站
  • 长沙武广新城建设网站敬请期待英语
  • 建企业网站程序系统wordpress5本地访问速度慢
  • 检察院加强网站建设国家企业信用信息公示系统辽宁
  • 国内网站备案流程微信营销的方式有哪些
  • 如何给局域网 做网站制作网页用什么软件
  • 毕业设计做啥网站好68Design一样设计网站
  • 网页制作与网站建设思维导图施工企业资质分为哪些