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