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

Posted LinuxRookie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 网络编程字节序和地址装换的主要内容,如果未能解决你的问题,请参考以下文章

Linux网络编程初步

网络字节序和主机字节序

主机字节序和网络字节序转换

判断主机网络字节序和互相转换

大端字节序和小端字节序

Linux网络编程基础API