[英]What's the “hints” mean for the addrinfo name in socket programming
在进行套接字编程时,人们总是将addrinfo结构命名为:
struct addrinfo hints;
// get ready to connect
status = getaddrinfo("www.example.net", "3490", &hints, &servinfo);
我想知道它代表什么,以更好地理解结构。
提前致谢。
谢谢你的回答。 也许我不清楚:
我想知道变量名称“hints”是否是某些单词的缩写? 或者,如果单词“提示”意味着它只提供一些地址信息,让getaddrinfo()函数填写其余的?
从FreeBSD手册页 :
hints
是指向struct addrinfo的可选指针,由<netdb.h>
定义...此结构可用于提供有关调用者支持或希望使用的套接字类型的提示。
它被称为“提示”,因为它可以用来提供提示(在提示的意义上;提示可能有用但可以忽略)。 这表示调用者想要的协议族(例如IPv4与IPv6),什么套接字类型(数据报与straming),什么协议(TCP与UDP)等等。您可以为hints
传递NULL
,从而表示您不关心您获得的协议族,套接字类型或协议。
来自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或空指针。
struct addrinfo hints;
只是一个变量声明。 结构本身在库中定义,并通过sys/socket.h
包含。
它指的是英文单词“hints”所指的相同含义。 它不是缩写 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.