主机跨网通信时的字节序转换

字节序分为 little-endian 和 big-endian,不同主机通信字节序转换过程:

主机字节序 -> 网络字节序 ->主机字节序

判断网络字节序:

  1. #include<arpa/inet.h>
  2. int isBigEndian()
  3. {
  4. int flag = 0;
  5. short a = htons(0x0102);
  6. char* p = &a;
  7. if(*p==0x01)
  8. {
  9. flag = 1;
  10. }
  11. return flag;
  12. }

网络字节序为big-endian

判断主机字节序:

  1. int isBigEndian()
  2. {
  3. int flag = 0;
  4. short a = 0x0102;
  5. char* p = &a;
  6. if(*p==0x01)
  7. {
  8. flag = 1;
  9. }
  10. return flag;
  11. }

我的本地主机字节序为little-endian:





posted @ 2015-05-26 11:40  外禅内定,程序人生  阅读(184)  评论(0)    收藏  举报