网络传输数据是需要保证字节序的正确,才能保证传输数据的准确,网络字节序一般是大端字节序。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;---------------------
作者:life_is_too_hard 来源:CSDN 原文:https://blog.csdn.net/life_is_too_hard/article/details/51557929 版权声明:本文为博主原创文章,转载请附上博文链接!