由于主控与显控之间采用的是UDP协议,所以显控给主控发送的数据要按照网络字节序(也就是大端)发送,也就是低字节数据放到高地址,举例:比如要把tmp这样一个int四字节的数据,unsigned int tmp = 0x11223344;放进array中发送出去,需要下面这样赋值:
QByteArray array;
Array[0]=44;
Array[0]=33;
Array[0]=22;
Array[0]=11;
由于一般显控主机内核是x86架构的,都是小端存储的,所以在应用UDP协议的时候不能直接用结构体赋值,然后强转char*发送,需要手动先转换成网络字节序,主控接收端接收到数据再用结构体指针强转才能正确。