首页 > 解决方案 > AF_TCNMESSAGE(从 getaddrinfo() 作为 ai_family 字段的值返回)是什么意思?

问题描述

我已经用谷歌搜索了它,但除了#define's 之外什么也没找到。

这发生在 OSX 10.11 机器上。

这是一个小型复制器(主机最初来自 hostname() 函数,使用它时存在一些问题,所以这就是它被硬编码的原因)

#include <stdio.h>
#include <sys/socket.h>
#include <netdb.h>

typedef struct addrinfo     ADRINFO;

int main(void)
{
    const char* host = "Romi-Mac-Mini.local";
    const char* port = "1543";
    ADRINFO *aip, hint = { AI_NUMERICSERV, AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP,
        /*addrlen*/0, /*addr*/0, /*canonname*/0, /*next*/0 };
    const int ret = getaddrinfo(host, port, &hint, &aip);
    if (!aip)
    {
        printf("aip is NULL\n");
    }
    else
    {
        printf("ret=%d ai_family=%d\n", ret, aip->ai_family);
    }

    return 0;
}

在有问题的机器上,它输出 ret=0 ai_family=30

标签: csockets

解决方案


推荐阅读