本帖最后由 bicel1222 于 2010-07-13 11:30:17 编辑

解决方案 »

  1.   

    这个和OS中的word(汇编中的概念,多个字节组成的单元)存放相关,有高位在前还是低位在前的说法。你这个例子估计是0x9000发送的是一个整数值,并且目标到一个低位在前的主机,因此发送时需要将字节顺序颠倒处理。对于单个字节的字符传递,则不需要进行反转。LZ自己可以试一下一个整数的存储,在很多OS上存放都是低位在前,高位在后的。
      

  2.   

    补充一下:字符是以字节(byte)为单位分配内存的,数值则以word为单位分配内存的,比如32位机器中,一个word即4个字节。当将某个整数存放到这4个字节中去时,有两种存放,比如:
    整数0x12 34 56 78
    高位在前,则存放顺序为: 0x12 0x34 0x56 0x78
    地位在前,则存放顺序为: 0x78 0x56 0x34 0x12
      

  3.   

    TCP 并没有规定传送的字节序必须是 Big-Endian 的,不过一般来说要不就是用 Big-Endian,要不就用 Little-Endian,不大可能会混用的。