1 addrinfo
addrinfo
结构内容如下:
struct addrinfo {
int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
int ai_family; /* PF_xxx */
int ai_socktype; /* SOCK_xxx */
int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
socklen_t ai_addrlen; /* length of ai_addr */
char *ai_canonname; /* canonical name for hostname */
struct sockaddr *ai_addr; /* binary address */
struct addrinfo *ai_next; /* next structure in linked list */
};
1.1 ai_family
ai_family
指定了地址族,可取值如下:
值 | 取值 | 含义 |
---|---|---|
AF_INET | 2 | IPv4 |
AF_INET6 | 23 | IPv6 |
AF_UNSPEC | 0 | 协议无关 |
void print_family(struct addrinfo *aip)
{
printf(" family ");
switch (aip->ai_family) {
case AF_INET:
printf("inet");
break;T
case AF_INET6:
printf("inet6");
break;