按照数据包中的结构转字节序,BYTE就不用了,WORD,DWORD或BITS位必须手动转。另外可以使用对头文件的结构逆序定义来实现。

解决方案 »

  1.   

    每种类型要自己写转字节序的方法。
    建议的解决方法:
    首先要求,系统中结构的头文件1字节对齐(4字节更好)。
    其次,系统中所有先外部模块发送消息的节点上的进程必须以小端字节序发送(网络字节序),这样较为规范,修改的工作量较小。
    头文件的结构逆序定义主要是针对结构中的BITS位来定义的,
    struct {
    ...
        #if defined (_CONV_)
            BITS   btVar1 :1;
            BITS   btVar2 :2;
            BITS   btVar3 :3;
            BITS   btRevs :2;
        #else
            BITS   btRevs :2;
            BITS   btVar3 :3;
            BITS   btVar2 :2;
            BITS   btVar1 :1;
        #endif
    ...
    }
    如果消息的结构不大的话,建议使用BYTE来替代BITS这样Java程序处理起来会容易。
    并且,程序更清晰。