2015-01-25 3 views
0

В getaddrinfo("www.example.net","1234", &hints, &server_info)сокет программирования спутанность getaddrinfo функции

Что является использование параметра hints?

+0

Via [Wikipedia] (http://en.m.wikipedia.org/wiki/Getaddrinfo): «подсказки могут быть либо NULL, либо структурой addrinfo с типом обслуживания, которым мы заинтересованы (например, сокет может быть доступный как для TCP, так и для UDP, поэтому мы можем заявить о своей заинтересованности только в первом) –

ответ

0

getaddrinfo документируется в man page, который имеет это сказать о параметре подсказок:

намеками аргумент указывает на структуру addrinfo, которая определяет критерии выбора адреса структуры сокета, возвращаемые в списке указывается res. Если подсказки не 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; 
}; 

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