小端字节序(little endian):低字节数据存放在内存低地址处,高字节数据存放在内存高地址处
大端字节序(bigendian):高字节数据存放在低地址处,低字节数据存放在高地址处
java中一个int型数据占用4个字节,假如有一个16进制的int数,int value = 0x01020304;采用不同的字节序,在内存中的存储情况见下图:
参考:http://www.2cto.com/kf/201404/291765.html
假设(很可能)系统是从低地址写的,那么按照大端的规则(网络字节序),对方收到的就是高字节,服务端也按照大端规则解析即可,
也就是服务端知道收到的是低地址的数据,按照网络字节序,就是高字节,这样就可以正常解析了