首页 > 代码库 > 【Linux 网络编程】字节序和地址装换

【Linux 网络编程】字节序和地址装换

(3)字节序
    <1>大端字节序
        最高的有效位存储于最低内存地址处,最低有效位存储于最高内存地址处。
    <2>小端字节序
        最高的有效位存储于最高内存地址处,最低有效位存储于最低内存地址处。
    保存0x12345678
       ----------------->内存地址增长的方向
        12 34 56 78 大端字节序
        78 56 34 12 小端字节序
    <3>主机字节序
        不同的主机有不同的字节序,如x86是小端字节序,ARM为可配置字节序
    <4>网络字节序
        网络字节序规定为大端字节序
    <5>字节序转换函数
        uint32_t htonl(uint32_t hostlong);
        uint16_t htons(uint16_t hostshort);
        uint32_t ntohl(uint32_t netlong);
        uint16_t ntohs(uint32_t netlong);
<6>地址转换函数
        #incldue <netinet/in.h>
        #include <arpa/inet.h>

        int inet_aton(const char *pc, struct in_addr *inp); //把点分十进制转化为地址结构体
        in_addr_t inet_addr(const char *pc); //把点分十进制转化为32位的整数
        char *inet_ntoa(struct in_addr in); //将一个地址结构转换为点分十进制的IP地址

【Linux 网络编程】字节序和地址装换