путаница в программировании сокетов функции getaddrinfo

In getaddrinfo("www.example.net","1234", &hints, &server_info)

Какая польза от параметра hints?


person Jiaming Li    schedule 25.01.2015    source источник
comment
Через Википедию: подсказки могут быть либо NULL, либо структурой addrinfo с типом службы, которую мы заинтересованы (например, сокет может быть доступен как для TCP, так и для UDP, поэтому мы можем отстаивать нашу заинтересованность только в первом)   -  person Mr. Polywhirl    schedule 26.01.2015


Ответы (1)


getaddrinfo задокументирован на справочной странице, где говорится о параметре hints:

Аргумент hints указывает на структуру addrinfo, которая определяет критерии выбора структур адресов сокетов, возвращаемых в списке, на который указывает res. Если hints не равен NULL, он указывает на структуру addrinfo, чьи ai_family, ai_socktype и ai_protocol определяют критерии, ограничивающие набор адресов сокетов, возвращаемых функцией getaddrinfo().

Таким образом, это параметр, который ограничивает результаты на основе заданных критериев. Критерии задаются с использованием структуры addrinfo:

struct addrinfo {
    int              ai_flags;
    int              ai_family;
    int              ai_socktype;
    int              ai_protocol;
    socklen_t        ai_addrlen;
    struct sockaddr *ai_addr;
    char            *ai_canonname;
    struct addrinfo *ai_next;
};

Вы можете прочитать о каждом из параметров структуры на той же справочной странице.

person Malt    schedule 26.01.2015