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
  • 相关阅读:
    POJ2395 Out of Hay
    POJ2421 Constructing Roads
    POJ2031 Building a Space Station
    POJ1751 Highways
    [NOIP2007] 提高组 洛谷P1099 树网的核
    [NOIP2007] 提高组 洛谷P1005 矩阵取数游戏
    [NOIP2007] 提高组 洛谷P1097 统计数字
    [NOIP2007] 提高组 洛谷P1098 字符串的展开
    [NOIP2007] 普及组
    洛谷 通天系列 P1760 P1757 P1759
  • 原文地址:https://www.cnblogs.com/-colin/p/7560342.html
Copyright © 2011-2022 走看看