关于网络字节序和主机字节序的转换

网络字节顺序及其转换函数
(1)  网络字节顺序
每一台机器内部对变量的字节存储顺序不同,而网络传输的数据是一定要统一顺序的。所以对内部字节表示顺序与网络字节顺序不同的机器,一定要对数据进行转换,从程序的可移植性要求来讲,就算本机的内部字节表示顺序与网络字节顺序相同也应该在传输数据以前先调用数据转换函数,以便程序移植到其它机器上后能正确执行。真正转换还是不转换是由系统函数自己来决定的。
(2)  有关的转换函数
unsigned  short  int  htons(unsigned  short  int  hostshort):
主机字节顺序转换成网络字节顺序,对无符号短型进行操作4bytes
unsigned  long  int  htonl(unsigned  long  int  hostlong):
主机字节顺序转换成网络字节顺序,对无符号长型进行操作8bytes
unsigned  short  int  ntohs(unsigned  short  int  netshort):
网络字节顺序转换成主机字节顺序,对无符号短型进行操作4bytes
unsigned  long  int  ntohl(unsigned  long  int  netlong):
网络字节顺序转换成主机字节顺序,对无符号长型进行操作8bytes
注:以上函数原型定义在netinet/in.h里

你可能感兴趣的:(C语言类)