2010-02-10 45 views

回答

5

man 3 getaddrinfo

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在寻找什么。

+1

是的,创建一个新的addrinfo,将sockaddr放在* ai_addr中,并用合理的值填充其他字段似乎是一种方法。 – bortzmeyer 2010-02-10 21:46:25