我很迷茫。
我getaddrinfo
用来获取给定网络主机的地址信息。
在这种情况下,我一直在使用www.cmu.edu
.
我的代码工作了一段时间,但后来停止了。
奇怪的是,我显然想出了一个错误,但是当错误代码被打印出来时,它说“成功”。
以下是相关的代码:
struct addrinfo *res = NULL;
struct addrinfo hint;
memset(&hint, 0, sizeof(hint));
hint.ai_family = AF_UNSPEC;
hint.ai_socktype = SOCK_DGRAM;
hint.ai_flags = 0;
hint.ai_protocol = 17;
if (getaddrinfo(host, portNo, &hint, &res))
{
perror("getaddrinfo");
return 0;
}
Host 和 portNo 是包含主机(在本例中为“ www.cmu.edu
”)和端口(在本例中为“80”)的字符串。
它们肯定包含正确的东西,没有多余的空格或类似的东西。
编辑:谢谢大家!我现在至少有一个适当的错误消息,即使我仍然不知道为什么事情停止工作。错误信息是:
Servname not supported for ai_socktype
我一直在寻找导致此错误的可能原因,但没有发现任何东西。正如我所说,这段代码在早些时候运行,并且在我没有更改任何内容的情况下就停止了。我推断它可能是我使用的端口号,但我已经更改了几次,没有任何改变。
有什么见解吗?我没有附加到端口号或除主机之外的任何东西。我只是想让它工作。