qt ,使用tcp/ip协议网络传输数据时,字节序转换方法

原创 2016年06月01日 18:00:53

网络传输数据是需要保证字节序的正确,才能保证传输数据的准确,网络字节序一般是大端字节序。qt提供了以下两种方法来将本地字节序转换为网络字节序:

方法一,使用qt提供的字节序转换函数

T qFromBigEndian(const uchar * src)
T qFromBigEndian(T src)
T qFromLittleEndian(const uchar * src)
T qFromLittleEndian(T src)
void qToBigEndian(T src, uchar * dest)
T qToBigEndian(T src)
void qToLittleEndian(T src, uchar * dest)
T qToLittleEndian(T src)
quint16 src = 8823;
QByteArray byte_arry;
uchar temp[2];
qToBigEndian<quint16>(src, temp);
byte_array.append((char*)temp,2);


方法二,使用QDataStream来读写QByteArray, QDataStream 可以设置字节序

  int i = 8823;
  QDataStream data_stream(&byte_array, QIODevice::WriteOnly);
  data_stream.setByteOrder(QDataStream::BigEndian);
  data_stream<<i;


大端模式、小端模式及其在Qt中的转换

大端模式和小端模式是计算机中经常涉及到的两种字节序,也有大端对齐、小端对齐、大尾、小尾等叫法。 一、起源 说起这两种模式,就不得不提一下大端(Big-endian)和小端(Little-endia...
  • usownh
  • usownh
  • 2015年01月11日 19:47
  • 2886

Qt5主要机制和模块概述

Qt的几个主要机制 1、The Meta-Object System,元对象系统  2、The Property System,属性系统  3、Object Model,对象模型  4、Obj...

基于Qt的语音识别功能

基于Qt的语音识别
  • Esonpo
  • Esonpo
  • 2014年04月18日 22:17
  • 4454

Big-Endian和Little-Endian转换

CPU的little-endian模式和big-endian模式(转)(2011-09-27 09:23:44) 转载▼   分类: 学习笔记 在各种计...

再议字节序-------TCP/IP网络传输相关字节序

对于网络这一块的字节序,说实话,理解不够深,在网上学些了下,先整理点,以后继续完善。 实际上如果是应用层的数据,即对TCP/IP来说是透明的数据,不用考虑字节序的问题。因为接收端收到的顺序是和发送...

【网络编程】数据传输时的字节序

前言可能小组的同学很早就听说过大小端,但是似乎这个顺序并没有什么卵用。。(我就是这么想的)不过在学习网络编程中,突然对这个问题有了新的认识,赶紧总结下,不然以后肯定踩坑。。。本文假定读者已经明白了大小...

主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs

Part 1: htons函数具体解释      在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。      在Intel机器下...

主机字节序与网络字节序的转换过程

主机字节序与网络字节序的转换过程
  • an_tang
  • an_tang
  • 2017年05月29日 17:13
  • 886

Qt TCP协议 传输简单字符串实例

转载自http://mobile.51cto.com/symbian-270781_all.htm Qt TCP协议 传输简单字符串实例是本文要介绍的内容。TCP即Transmission Co...

Qt之进程间通信(TCP/IP)

简述可以通过Qt提供的IPC使用TCP/IP,使用QtNetwork模块即可实现,TCP/IP在实现应用程序和进程内部通信或与远程进程间的通信方面非常有用。QtNetwork模块提供的类能够创建基于T...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt ,使用tcp/ip协议网络传输数据时,字节序转换方法
举报原因:
原因补充:

(最多只允许输入30个字)