zoukankan      html  css  js  c++  java
  • addrinfo结构体原型-(转自 cxz2009)

    addrinfo结构体原型

    typedef struct addrinfo {
        int ai_flags;        //AI_PASSIVE,AI_CANONNAME,AI_NUMERICHOST
        int ai_family;        //AF_INET,AF_INET6
        int ai_socktype;    //SOCK_STREAM,SOCK_DGRAM
        int ai_protocol;    //IPPROTO_IP, IPPROTO_IPV4, IPPROTO_IPV6 etc.
        size_t ai_addrlen;            //must be zero or a null pointer
        char* ai_canonname;            //must be zero or a null pointer
        struct sockaddr* ai_addr;    //must be zero or a null pointer
        struct addrinfo* ai_next;    //must be zero or a null pointer
    }

    其中ai_flags、ai_family、ai_socktype说明如下:
    参数            取值            值            说明
    ai_family        AF_INET            2            IPv4
                    AF_INET6        23            IPv6
                    AF_UNSPEC        0            协议无关
    ai_protocol        IPPROTO_IP        0            IP协议
                    IPPROTO_IPV4    4            IPv4
                    IPPROTO_IPV6    41            IPv6
                    IPPROTO_UDP        17            UDP
                    IPPROTO_TCP        6            TCP
    ai_socktype        SOCK_STREAM        1            流
                    SOCK_DGRAM        2            数据报
    ai_flags        AI_PASSIVE        1            被动的,用于bind,通常用于server socket
                    AI_CANONNAME    2
                    AI_NUMERICHOST    4            地址为数字串

    对于ai_flags值的说明:
    AI_NUMERICHOST | AI_CANONNAME | AI_PASSIVE
    如上表所示,ai_flags的值范围为0~7,取决于程序如何设置3个标志位,比如设置ai_flags为 “AI_PASSIVE|AI_CANONNAME”,ai_flags值就为3。三个参数的含义分别为:
    (1)AI_PASSIVE当此标志置位时,表示调用者将在bind()函数调用中使用返回的地址结构。当此标志不置位时,表示将在connect()函数调用中使用。当节点名位NULL,且此标志置位,则返回的地址将是通配地址。如果节点名NULL,且此标志不置位,则返回的地址将是回环地址。
    (2)AI_CANNONAME当此标志置位时,在函数所返回的第一个addrinfo结构中的ai_cannoname成员中,应该包含一个以空字符结尾的字符串,字符串的内容是节点名的正规名。
    (3)AI_NUMERICHOST当此标志置位时,此标志表示调用中的节点名必须是一个数字地址字符串。
     
    转载链接:http://www.cnblogs.com/cxz2009/archive/2010/11/19/1881661.html
  • 相关阅读:
    Lazy Load, 延迟加载图片的 jQuery 插件(转)
    获取python的版本&获取两个日期的天数差值
    基于appnium+python+夜神模拟器的自动化
    Appium安装部署
    HttpRunner_参数化进阶
    httprunner2.0 概述及使用说明
    httprunner官方文档
    Linux中常用的监控性能的命令(sar、mpstat,vmstat, iostat,)详解
    Linux常用命令大全
    JMeter 事务控制器
  • 原文地址:https://www.cnblogs.com/-colin/p/7560342.html
Copyright © 2011-2022 走看看