Loading

【Linux网络编程】字节序

【Linux网络编程】字节序

字节序

字节序就是字节在内存中存储的顺序,如32位整数0x01234567,在内存中存储时,有如下两种顺序:

image

大端序将数值的高位存储在低位地址中,小端序则相反。

网络字节序

网络中传输数据均采用大端序

Linux字节序转换函数

#include <netinet/in.h> 中提供了 4 个函数:

unsigned long int htonl(unsigned long int hostlong);    // 主机ip->网络ip
unsigned short int htons(unsigned short int hostshort); // 主机port->网络port
unsigned long int ntohl(unsigned long int netlong);     // 网络ip->主机ip
unsigned short int ntohs(unsigned long int netshort);   // 网络port->主机port

其含义很明确,如 "htol" 表示 "host to network long"。一般长整型函数用于转换 ip 地址,短整型函数用来转换 port。

posted @ 2024-08-28 15:22  杨谖之  阅读(5)  评论(0编辑  收藏  举报