Что означают «подсказки» для имени addrinfo в программировании сокетов - PullRequest
12 голосов
/ 16 апреля 2009

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

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

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

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


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

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

Ответы [ 4 ]

8 голосов
/ 17 апреля 2009

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

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

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

2 голосов
/ 16 апреля 2009

С 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, либо нулевой указатель.

0 голосов
/ 12 декабря 2013

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

0 голосов
/ 16 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...