佚名通过本文主要向大家介绍了getaddrinfo函数,getaddrinfo,getaddrinfo failed,python getaddrinfo,getaddrinfo ipv6等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: getaddrinfo 函数意思。
描述:
getaddrinfo() 这个API的 怎么感觉怪怪的。
参数1 是一个地址addr (这里设置的是一个域名)
参数2 是一个结构体,只是上面初始化 赋值了。
参数3 就是一个指针。空的。
但是这3者貌似没有联系啊,断点调试了下,参数1 addr 和 参数2 hints 都没有变化,就是参数3,把 hints 参数2的转手过来了值 多了一个大小 addrlen 的值 。。。
这什么意思,然后并没有懂,一般API都是把什么内容传给什么数组什么的,但是这里,3 参数起到什么作用。没看懂。求解参数3,是什么意思,以及在函数里什么意思。
解决方案1:
描述:
本帖最后由 VisualEleven 于 2016-06-27 10:13:56 编辑
求解
struct addrinfo* CProtoInfo::ResolveAddress(char* addr, char* port, int af, int type, int proto)
{
struct addrinfo hints;
struct addrinfo* res = NULL;
int rc = 0;
memset(&hints, 0, sizeof(hints)); //初始化结构体hints
hints.ai_flags = (NULL != addr ? 0 : AI_PASSIVE);
hints.ai_family = af;
hints.ai_socktype = type;
hints.ai_protocol = proto;
if(0 != getaddrinfo(addr, port, &hints, &res))
{
return NULL;
}
else
{
return res;
}
}
getaddrinfo() 这个API的 怎么感觉怪怪的。
参数1 是一个地址addr (这里设置的是一个域名)
参数2 是一个结构体,只是上面初始化 赋值了。
参数3 就是一个指针。空的。
但是这3者貌似没有联系啊,断点调试了下,参数1 addr 和 参数2 hints 都没有变化,就是参数3,把 hints 参数2的转手过来了值 多了一个大小 addrlen 的值 。。。
这什么意思,然后并没有懂,一般API都是把什么内容传给什么数组什么的,但是这里,3 参数起到什么作用。没看懂。求解参数3,是什么意思,以及在函数里什么意思。
解决方案1:
数据主要放到hints中,返回给调用的API。然后去解析内容