关闭

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

标签: qttcp网络
2025人阅读 评论(0) 收藏 举报
分类:

网络传输数据是需要保证字节序的正确,才能保证传输数据的准确,网络字节序一般是大端字节序。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;


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20871次
    • 积分:438
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论