2010-02-10 46 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