在进行套接字编程时,人们总是将addrinfo结构命名为:
struct addrinfo hints;
// get ready to connect
status = getaddrinfo("www.example.net", "3490", &hints, &servinfo);
我想知道它对于更好地理解是什么意思。
提前致谢。
感谢您的回答。 也许我没有说清楚。
但我想知道变量名称“hints”是否是某些单词的缩写?或者它只是单词“提示”意味着它只提供一些地址信息并让getaddrinfo()函数填写其余的?
答案 0 :(得分:8)
hints
是指向结构addrinfo的可选指针,由<netdb.h>
定义...此结构可用于提供有关调用者支持或希望使用的套接字类型的提示。
它被称为“提示”,因为它可以用来提供提示(在提示的意义上;提示可能有用但可以忽略)。这表示调用者想要的协议族(例如IPv4与IPv6),什么套接字类型(数据报与straming),什么协议(TCP与UDP)等等。您可以传递NULL
in对于hints
,因此表明您不关心您获得的协议族,套接字类型或协议。
答案 1 :(得分:2)
来自http://linux.die.net/man/3/getaddrinfo
hints参数指定首选套接字类型或协议。 NULL提示指定任何网络地址或协议都是可接受的。如果此参数不为NULL,则它指向addrinfo结构,其ai_family,ai_socktype和ai_protocol成员指定首选套接字类型。 ai_family中的AF_UNSPEC指定任何协议族(例如,IPv4或IPv6)。 ai_socktype或ai_protocol中的0指定任何套接字类型或协议也是可接受的。 ai_flags成员指定了下面定义的其他选项。通过逻辑或将它们组合在一起来指定多个标志。 hints参数中的所有其他成员必须包含0或空指针。
答案 2 :(得分:0)
struct addrinfo hints;
只是一个变量声明。结构本身在库中定义,并通过sys/socket.h
包含。
答案 3 :(得分:-3)
它指的是英语单词&#34;提示&#34; 的含义相同。它是不是缩写。