• Linux网络协议.之 tcp,udp,socket网络编程(四).之网络转换函数htonl,ntohs等介绍


    字节转换函数

    把给定系统所采用的字节序称为主机字节序,为了避免不同类别主机之间在数据交换时由于对于字 节序的不同而导致的差错,引入了网络字节序。
    主机字节序到网络字节序
    u_long htonl(u_long hostlong);
    u_short htons(u_short short);
    网络字节序到主机字节序
    u_long ntohl(u_long hostlong);
    u_short ntohs(u_short short);
    IP地址的转换

    inet_aton()
    将strptr所指的字符串转换成32位的网络字节序二进制值

    inet_addr()
    功能同上,返回转换后的地址 仅适用于IPV4,出错时返回-1。

        局限性:不能用于255.255.255.255的转换
    

    inet_ntoa()
    将32位网络字节序二进制地址转换成点分十进制的字符串

    inet_pton()
    int inet_pton(int af, const char* src ,void* dst)

        将IPV4/IPV6 的地址转换成binary格式
    
        使用于IPV4/IPV6 能正确处理255.255.255.255的转换问题
    
        参数:
    
        1.地址协议族(AF_INET或AF_INET6)
    
        2.src:是一个指针(填写分点形式的IP地址(主要指IPV4))
    
        dst:转换的结果给到dst
    

    inet_ntop(int af,const void *src,char *dst,socklen_t size)
    把ipv4和ipv6的网络字节序变成本地的字符串形式的IP地址

        参数
    
        1.af:地址协议族(AF_INET或AF_INET6)
    
        2.src:是一个指针(32)
    
        3.dst:输出结果为32位点分形式的IP地址
    
        4.size:长度
    

    ————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

    原文链接:https://blog.csdn.net/m0_74712453/article/details/132631903

  • 相关阅读:
    中微SC8F5771模拟IIC通信——指令运行速度的探索(附编译软件与烧录软件)
    Flink热门商品统计
    uniapp-vue3-微信小程序-按钮组wo-btn-group
    <explain>索引优化的这把绝世好剑,你真的会用吗?
    利用ChatGPT提升工作效率
    Web 操作技巧有哪些
    Autobus 方法记录
    一键部署区块链背后的秘密(下)
    K8S 运维管理
    [pwn基础]Linux安全机制
  • 原文地址:https://blog.csdn.net/rjszcb/article/details/140954783