Как создать структуру addrinfo из структуры sockaddr? - PullRequest
3 голосов
/ 11 февраля 2010

У меня есть struct sockaddr, и мне нужно создать struct addrinfo (в частности, потому, что этого хочет другой API). IP-адрес может быть IPv4 или IPv6. Какой лучший способ справиться с этим?

1 Ответ

5 голосов
/ 11 февраля 2010

От человек 3 гетаддринфо ,

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;
};

A struct addrinfo содержит больше информации, чем просто struct sockaddr. Учитывая struct sockaddr_in, вы можете получить часть этой информации (.ai_family = AF_INET, .ai_addrlen = sizeof(struct sockaddr_in)). Достаточно ли этого, зависит от того, что ищет другой API.

...