Для этого есть похожие вопросы , но я не могу найти ответ, который ищу.
#include <netdb.h>
int getaddrinfo (const char *hostname,
const char *service,
const struct addrinfo *hints,
struct addrinfo **result) ;
Returns: 0 if OK, nonzero on error
Что мне интересно, так это то, почему нам нужна итерация по связанному списку, на который указывает result
, даже если мы определяем hints
вместо того, чтобы быть NULL
. Мы уже знаем IP
(имя хоста) и PORT
(сервис). Не так ли?
Если итерация необходима, могли бы вы привести пример, просто рассмотрев парня, не обладающего полным знанием сети?
Например, я определяю hints
следующим образом.
struct addrinfo hints;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC; /* IPv4 or IPv6 */
hints.ai_socktype = SOCK_STREAM; /* TCP */
hints.ai_flags = 0;
hints.ai_protocol = 0;