zoukankan      html  css  js  c++  java
  • sock_ntop等函数

    inet_ntop的一个基本问题是:它要求调用者传递一个指向某个二进制地址的指针,

    而该地址通常包含在一个套接字地址结构中,这就要求调用者必须知道这个结构的格式和地址簇,

    为了使用这个函数,我们必须为IPv4编写如下代码:

    struct sockaddr_in   addr;

    inet_ntop(AF_INET,&addr.sin_addr,str,sizeof(str));

    或为IPv6编写:

    struct sockaddr_in6  addr6;

    inet _ntop(AF_INET6,&addr6.sin6_addr,str,sizeof(str));

    这就使得代码和协议相关了。

    为了解决这个问题,我们将自己编写一个名为sock_ntop的函数,

    它以指向某个套接字地址结构的指针为参数,查看该结构的内部,然后调用适当的函数返回该地址的表达式

    char * sock_ntop(const struct sockaddr * sockaddr,socklen_t addrlen);

    sockaddr指向一个长度为addrlen的套接字地址结构,本函数用它自己的静态缓冲区来保存结果,而指向该缓冲区的一个指针就是它的返回值

    我们还可以定义其他几个函数,简化IPv4与IPv6之间的移植

    sock_bind_wild将通配地址和一个临时端口捆绑到一个套接字

    sock_cmp_addr比较2个套接字地址结构的地址部分

    sock_cmp_port比较2个套接字地址结构的端口部分

    sock_get_port只返回端口号

    scok_ntop_host把一个套接字地址结构中的主机部分转换成表达格式(不包括端口号)

    ....

    ========================if i have some wrong, please give me a message, thx.========================
  • 相关阅读:
    ros 使用笔记
    GLog 初始化说明
    面试-重写基础功能函数
    C++后台服务崩溃堆栈日志
    Linux下FTP服务器(vsftpd)配置:
    Windows 命令行解析工具(getopt)
    C/C++ 宏技巧
    Sublime Keymap 设置
    C++程序设计的技巧-Pimple的使用
    TCP的长连接与短连接
  • 原文地址:https://www.cnblogs.com/ailx10/p/5348357.html
Copyright © 2011-2022 走看看