在DNS中查找主机的时间可能花了很多,在您看来,在查找无法找到的主机时似乎已超时。如果您连接的DNS服务器将请求转发到另一台DNS服务器,并且在合理的时间内没有收到答复,则可能会发生这种情况,这可能是因为配置不正确。
您可以通过使DNS查找超时更早来在操作系统级别解决此问题。例如在Linux下,你可以添加options timeout:2
到/etc/resolv.conf
使DNS查询超时2秒,而不是默认。在Windows上,您必须编辑注册表设置。
另外,您可以在程序中使用线程进行名称解析来解决此问题。如果您没有在超时后返回线程,则可以指定名称解析将抛出UnkNownHostException
。
第三种选择是使用其他性能更好的DNS服务器,例如Google在8.8.8.8和4.4.4.4中维护的服务器。