字节序是一种存储方式的规则,分为大头字节序和小头字节序。对于非char类型的变量来说,都收到字节序的规则影响。一个int在大头字节序下和小头字节序下存储方式是不同的。
主机字节序:
x86的cpu都是小头的,
某些unix是大头的,
java是大头的,
网络字节序是大头的,
平时做c++开发的时候,只在端口号的时候需要考虑字节序,send, recv的时候都是把struct强转成字节流操作的,也没考虑过字节序。
原因如下:
c++在windows和linux下都是小头,所以不会出错。
如果java服务器,要发送一个int给c++客户端。此时就要考虑字节序。
方法1,java下发送前把int转成小头,然后强转成4个字节发送;
方法2,c++收到四个字节后,强转成int,然后转成小头。
protobuf序列化成小头字节流,所以用Protobuf可以不用考虑字节序了。
阅读(855) | 评论(0) | 转发(0) |