Подтвердить что ты не робот

Что означают "намеки" для имени addrinfo в программировании сокетов

При программировании сокетов люди всегда называют структуру addrinfo следующим образом:

struct addrinfo hints;
// get ready to connect
status = getaddrinfo("www.example.net", "3490", &hints, &servinfo);

Я хотел бы знать, что это означает, чтобы лучше понять структуру.

Заранее спасибо.


Спасибо за ответы. Может быть, я не был ясен:

Я хочу знать, является ли имя переменной "подсказки" аббревиатурой для некоторых слов? Или, если слово "подсказки" означает, что оно дает только некоторую информацию об адресе и позволяет функции getaddrinfo() заполнять остальные?

4b9b3361

Ответ 1

Из справочная страница FreeBSD:

hints является необязательным указателем на struct addrinfo, как определено <netdb.h>... Эта структура может использоваться для предоставления подсказок о типе сокета, который поддерживает или хочет использовать вызывающий.

Он называется "подсказки", потому что он может использоваться для предоставления, ну, намеков (в смысле подсказки, предложения, которые могут пригодиться, но могут быть проигнорированы). Это указывает на такие вещи, как семейство протоколов (например, IPv4 и IPv6), какой тип сокета (датаграмма или строма), какой протокол (TCP против UDP) и т.д. Вы можете передать NULL in для hints и, таким образом, указать, что вам все равно, какой семейство протоколов, тип сокетов или протокол вы вернетесь.

Ответ 2

От http://linux.die.net/man/3/getaddrinfo

Параметр hints указывает предпочтительный тип сокета или протокол. Указания NULL указывают, что любой сетевой адрес или протокол приемлемы. Если этот параметр не равен NULL, он указывает на структуру addrinfo, чьи члены ai_family, ai_socktype и ai_protocol указывают предпочтительный тип сокета. AF_UNSPEC в ai_family указывает любое семейство протоколов (например, IPv4 или IPv6). 0 в ai_socktype или ai_protocol указывает, что любой тип сокета или протокол также приемлемы. Элемент ai_flags указывает дополнительные параметры, определенные ниже. Несколько флагов определяются логически ИЛИ-объединяя их. Все остальные члены в параметре hints должны содержать либо 0, либо нулевой указатель.

Ответ 3

struct addrinfo hints; - это просто объявление переменной. Сама структура определена в библиотеке и включается через sys/socket.h.

Ответ 4

Это относится к тому же значению, которое означает английское слово "намеки" . И не аббревиатура.