Getaddinfo - зачем передавать дополнительную информацию?

Подскажите пожалуйста, так как из описания на MSDN не очень понятно, зачем или необходимо ли заполнять следующие поля структуры addrinfo для передачи этих данных вместе с вызовом функции Getaddinfo():

hints.ai_family = AF_UNSPEC; //или AF_INET ...
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;

Просто тут два непонятных мне момента:

-Я могу их не указывать оставить зануленными и getaddrinfo завершается без ошибок и возвращает данные. -Я не могу понять почему их вообще нужно указывать, ведь, я как раз запрашиваю информацию об ip-адрессе по имени домена, а не предоставляю ее DNS-серверу.

То же самое касается и второго параметра getaddrinfo - это номер службы(типа http/https) или номер порта(80/443) - если занулить и передать их в Getaddinfo - тоже работает. И тут тоже не понятно, зачем DNS серверу эта информация? Разве DNS без этой информации не сможет найти все хранящуюся у него информацию только по имени домена ?


Ответы (0 шт):