专栏中心

EEPW首页 > 专栏 > addrinfo结构体原型

addrinfo结构体原型

发布人:电子禅石 时间:2021-10-25 来源:工程师 发布文章
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当此标志置位时,此标志表示调用中的节点名必须是一个数字地址字符串。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 网络

相关推荐

Coherent推出全系列InP技术组合

中国首例!我国对美国相关光纤产品发起反规避调查

SDN可编程交换芯片架构核心:RMT,一个可编程的网络DSA

网络与存储 2024-07-31

GSMA:全球 43% 的人口仍未使用移动互联网

教程:设置内置逻辑的 IO-Link 网络

Addison.Wesley.Advanced.Linux.Networking.part3.rar

超高速光纤创下全球速度纪录:在欧式距离上达到1.02拍比特每秒

AI网络架构或将进入“无交换机”时代

2025-06-12

Addison.Wesley.Advanced.Linux.Networking.part1.rar

HTML 解析之 BeautifulSoup

Addison.Wesley.Advanced.Linux.Networking.part2.rar

我国西部首个,重庆算力互联互通平台在两江新区上线

8、16位MCU接入TCPIP网络方案

资源下载 2008-01-05

网络爬虫开发常用框架Scrapy

Addison.Wesley.Advanced.Linux.Networking.part4.rar

更多 培训课堂
更多 焦点
更多 视频

技术专区