linux网络编程之AF_INET AF_INET6 AF_UNSPEC
31 Oct 2013int getaddrinfo(const char *node, const char *service,
const struct addrinfo *hints,
struct addrinfo **res);
struct addrinfo {
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
socklen_t ai_addrlen;
struct sockaddr *ai_addr;
char *ai_canonname;
struct addrinfo *ai_next;
};
ai_family
参数指定调用者期待返回的套接口地址结构的类型。
它的值包括三种:
- AF_INET: 函数返回IPV4相关的地址信息
- AF_INET6: 函数返回IPV6相关的地址信息
- AF_UNSPEC: 函数返回的是适用于指定主机名和服务名且适合任何协议族的地址
如果某个主机既有AAAA记录(IPV6)地址,同时又有A记录(IPV4)地址,那么AAAA
记录将作为sockaddr_in6
结构返回,而A记录则作为sockaddr_in
结构返回。