getaddrinfo函数获取到多个地址怎么办
发布网友
发布时间:2022-04-30 23:16
我来回答
共2个回答
热心网友
时间:2022-04-19 04:36
int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);
void freeaddrinfo(struct addrinfo *res);
struct addrinfo
{ int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
struct sockaddr *ai_addr; /* 我觉得这个成员是这个函数最大的便利。 */
char *ai_canonname;
struct addrinfo *ai_next;
};
参数: node 即 主机名称 ,可以是主机名称字符串,比如“hostname", 也可以是IP地址的字符串,比如“ 192.169.1.1”
service 服务 即端口号 可以是一个服务的名称,比如"http", 也可以是一个数字字符串 ,比如“80” .
hints 可以理解为约束条件,即你创建的,要获得的addrinfo结构,有什么约束。 在hints中进行设置
res 很明显,这个就是我们最终获得的addrinfo结构。
参考资料:http://blog.chinaunix.net/uid-11765716-id-390555.html