0%

网络字节序(大端)、主机字节序(看机器)

2020年6月7日 下午12:25
网络字节序与主机字节序 - jacktu - 博客园

内存地址

1
2
3
     4000   4001    4002     4003
LE 04 03 02 01
BE 01 02 03 04

网络字节顺序

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

进行转换

  • Bsd socket提供了转换的函数 有下面四个
    1. htons 把unsigned short类型从主机序转换到网络序
    2. htonl 把unsigned long类型从主机序转换到网络序
    3. ntohs 把unsigned short类型从网络序转换到主机序
    4. ntohl 把unsigned long类型从网络序转换到主机序

在使用little endian的系统中 这些函数会把字节序进行转换
在使用big endian类型的系统中 这些函数会定义成空宏