我有一个struct sockaddr并且需要创建一个struct addrinfo(特别是那个,因为这是其他API想要的)。 IP地址可以是IPv4或IPv6。处理这个问题的最佳方法是什么?
答案 0 :(得分:5)
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的用途。