主机序与网络字节序解析

网络数据流的地址:先发出的数据是低地址,后发出的是高地址

TCP/IP协议规定,网络数据流采用大端(big endian)字节序,低地址存高字节序,高地址低字节序(网络字节序)

        主机字节序一般采用小端(little endian)存储,低地址存低字节序,高地址存高字节序

例子:

int num=0x0102 01为高字节,02为低字节序
小端存储 02 01
大端存储 01 02

ntohs() 将一个无符号短整形数从网络字节顺序转换为主机字节顺序。
  printf("%ld\n",(eitP.tcp->th_dport)); 25834(网络字节序)
  printf("%ld\n",ntohs(eitP.tcp->th_dport)); 60004(主机字节序)
htonl()表示将32位的主机字节顺序转化为32位的网络字节顺序

其他函数相类似,不一一举例了

猜你喜欢

转载自www.cnblogs.com/kony9527/p/10546036.html