2
我有一个struct sockaddr并需要创建一个struct addrinfo(具体来说,因为这就是其他API所需的)。 IP地址可能是IPv4或IPv6。处理这个问题的最好方法是什么?如何从struct sockaddr生成struct addrinfo?
我有一个struct sockaddr并需要创建一个struct addrinfo(具体来说,因为这就是其他API所需的)。 IP地址可能是IPv4或IPv6。处理这个问题的最好方法是什么?如何从struct sockaddr生成struct addrinfo?
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;
};
一个struct addrinfo
包含的不仅仅是一个struct sockaddr
做的更多信息。鉴于struct sockaddr_in
,你可以有一些这方面的信息(.ai_family = AF_INET, .ai_addrlen = sizeof(struct sockaddr_in)
)。这是否足够取决于其他API在寻找什么。
是的,创建一个新的addrinfo,将sockaddr放在* ai_addr中,并用合理的值填充其他字段似乎是一种方法。 – bortzmeyer 2010-02-10 21:46:25