网络字节序与主机字节序的转换函数(实践)

什么是字节序?

  字节序,顾名思义,指字节在内存中存储的顺序。

  (1)小端字节序,数值低位存储在内存的低地址,高位存储在内存的高地址;
  (2)大端字节序,数值高位存储在内存的低地址,低位存储在内存的高地址。

 

字节序转换:

  网络字节序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而保证数据在不同主机之间传输时能够被正确解释。

  网络字节序转化为主机字节序时,一定要注意是否需要转换。网络字节序是确定的。

  网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big-endian(大端)排序方式。

转换函数:

为了进行转换 bsd socket提供了转换的函数 有下面四个

  htons把unsigned short类型从主机序转换到网络序

  htonl 把unsigned long类型从主机序转换到网络序

  ntohs 把unsigned short类型从网络序转换到主机序

  ntohl 把unsigned long类型从网络序转换到主机序

 

 

 
posted @ 2022-10-09 11:59  抹月披风  阅读(84)  评论(0)    收藏  举报