发送数据
inline QByteArray intToByte4(int data, QByteArray msg)
{
uchar byte0;
uchar byte1;
uchar byte2;
uchar byte3;
byte0 = (uchar) (0x000000ff & data);
byte1 = (uchar) ((0x0000ff00 & data) >> 8);
byte2 = (uchar) ((0x00ff0000 & data) >> 16);
byte3 = (uchar) ((0xff000000 & data) >> 24);
msg.append(byte0);
msg.append(byte1);
msg.append(byte2);
msg.append(byte3);
return msg;
}
数组、结构体(字节对齐)
QByteArray byteArray;
byteArray.append(reinterpret_cast<const char*>(&struct), sizeof (struct));
接收数据
QByteArray src;
memcpy(&struct, src.constData(), sizeof(struct));
quint64 msg_type;
memcpy(&msg_type,src,N);
backup.remove(0, N);
quint16 data = (src[1] | (src[2] << 8) )
Head *header = (Head *)(data);
Info * pData = (Info*)(data + sizeof(Head));
int value = 123;
unsigned char src[5] = {0};
memcpy(src, &value, sizeof(value));
long long info;
memcpy(&info, reinterpret_cast<const char*>(src), sizeof(src));