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.========================
  • 相关阅读:
    20189207《网络攻防实践》第一周作业
    事件冒泡
    链接分类
    JS:offsetWidth\offsetleft
    JS alert()、confirm()、prompt()的区别
    this用法
    事件绑定
    clippath
    浅谈正则
    C++大师Lippman:我对中国程序员的忠告(转载)
  • 原文地址:https://www.cnblogs.com/ailx10/p/5348357.html
Copyright © 2011-2022 走看看