【问题标题】:socket programming confusion of getaddrinfo functiongetaddrinfo函数的socket编程混乱
【发布时间】:2015-01-25 21:32:21
【问题描述】:

getaddrinfo("www.example.net","1234", &hints, &server_info)

hints参数有什么用?

【问题讨论】:

  • Via Wikipedia: "提示可以是 NULL 也可以是具有我们感兴趣的服务类型的 addrinfo 结构(例如,套接字可用于 TCP 和 UDP,因此我们可以断言我们的兴趣仅适用于前者)”

标签: c network-programming getaddrinfo


【解决方案1】:

getaddrinfo 记录在 man page 中,其中有关于提示参数的说明:

hints 参数指向一个 addrinfo 结构,该结构指定 选择返回的套接字地址结构的标准 res 指向的列表。如果提示不为 NULL,则它指向一个 addrinfo ai_family、ai_socktype 和 ai_protocol 指定的结构 限制由返回的套接字地址集的标准 getaddrinfo()

所以它是一个根据给定标准限制结果的参数。使用 addrinfo 结构给出标准:

struct addrinfo {
    int              ai_flags;
    int              ai_family;
    int              ai_socktype;
    int              ai_protocol;
    socklen_t        ai_addrlen;
    struct sockaddr *ai_addr;
    char            *ai_canonname;
    struct addrinfo *ai_next;
};

您可以在同一个手册页上阅读该结构的每个参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多