什么是“提示”对套接字编程中的addrinfo名称意味着什么

时间:2009-04-16 09:06:15

标签: c sockets

在进行套接字编程时,人们总是将addrinfo结构命名为:

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

我想知道它对于更好地理解是什么意思。

提前致谢。


感谢您的回答。 也许我没有说清楚。

但我想知道变量名称“hints”是否是某些单词的缩写?或者它只是单词“提示”意味着它只提供一些地址信息并让getaddrinfo()函数填写其余的?

4 个答案:

答案 0 :(得分:8)

来自FreeBSD man page

  

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; 的含义相同。它是不是缩写