Что является “подсказками”, средними для имени addrinfo в программировании сокета

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

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

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

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


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

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

12
задан Robert Houghton 30 July 2019 в 11:59
поделиться

3 ответа

На справочной странице FreeBSD :

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

Он называется "подсказками" «потому что он может быть использован для предоставления, ну, подсказок (в смысле подсказка; предложение, которое может быть полезным, но может быть проигнорировано). Это указывает на такие вещи, как то, какое семейство протоколов (например, IPv4 и IPv6) хочет вызывающий абонент, какой тип сокета (датаграмма против стриминга), какой протокол (TCP против UDP) и т. Д. ] в for намеки и, таким образом, указывают, что вам все равно, какое семейство протоколов, тип сокета или протокол вы получите.

8
ответ дан 2 December 2019 в 23:08
поделиться

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

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

2
ответ дан 2 December 2019 в 23:08
поделиться

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

0
ответ дан 2 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: