gethostbyaddr函数太慢(Perl socket编程)

时间:2015-10-02 21:42:54

标签: perl sockets network-programming

我试图在这个网站上运行这个例子 tutorialspoint

但它很慢。我认为这与缓冲响应有关,但更改了syswrite的print没有做任何事情所以我添加了一些调试消息,发现gethostbyaddr函数需要大约10秒才能解决。

我知道套接字编程还有其他模块,但我想知道这个问题是否很常见。

我正在运行localhost上的所有内容,而我正在使用mac

1 个答案:

答案 0 :(得分:2)

当然可能很慢。它与其他计算机联系以查找DNS条目。 (具体来说,查找地址w.x.y.z的主机会查找PTR的{​​{1}}条目。)如果权威DNS服务器没有响应,您的机器基本上都在等待在您的机器确定等待足够长的时间之后永远不会发生的响应。

如果您发现z.y.x.w.in-addr.arpa太慢,请不要使用它。只需使用IP地址即可。它不像gethostbyaddr那么有用。 gethostbyaddr的名称为216.58.219.46lax17s04-in-f14.1e100.net,但您更了解lax17s04-in-f46.1e100.net。然后有google.com 209.85.250.97gethostbyaddr无法返回任何名称,无论有多少域名解析为209.85.250.97