Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JAVA中使用InetSocketAddress进行快速dns查找_Java_Networking - Fatal编程技术网

如何在JAVA中使用InetSocketAddress进行快速dns查找

如何在JAVA中使用InetSocketAddress进行快速dns查找,java,networking,Java,Networking,我使用了5个线程来创建新的InetSocketAddress并将它们存储在队列中,但我发现这还不够。如何更快地进行dns查找?单个线程不足以进行dns查找吗?因为DNS查找只需要向DNS服务器发送一个请求,将域名转换为IP地址,一旦您得到它,它应该由您的操作系统存储以供以后使用。DNS查找的速度很可能受到本地DNS服务器的速度和/或它与您正在通话的远程DNS服务器之间的网络带宽和延迟的限制 在Java中,通过生成更多线程,您可能能够创建更多的InetSocketAddress(完成更多DNS查找

我使用了5个线程来创建新的InetSocketAddress并将它们存储在队列中,但我发现这还不够。如何更快地进行dns查找?

单个线程不足以进行dns查找吗?因为DNS查找只需要向DNS服务器发送一个请求,将域名转换为IP地址,一旦您得到它,它应该由您的操作系统存储以供以后使用。

DNS查找的速度很可能受到本地DNS服务器的速度和/或它与您正在通话的远程DNS服务器之间的网络带宽和延迟的限制

在Java中,通过生成更多线程,您可能能够创建更多的InetSocketAddress(完成更多DNS查找),但迟早您会遇到越来越难以绕过的外部限制

问题:为什么需要创建大量InetSocketAddress对象

编辑-根据您的回复,我假设这些InetSocketAddress对象都用于同一个远程主机,并且您希望它们能够快速启动应用程序。在这种情况下,可以通过从创建的第一个InetSocketAddress中查找IP地址并使用该IP地址创建其余的InetSocketAddress对象来避免重复DNS查找


问题2:提高什么的速度?您是否正在尝试同时与多个服务器通话?为什么?

我需要尽快得到结果,但是DNS查找的过程太慢了。DNS查找的过程需要向DNS服务器发出请求,如果DNS服务器离您很远,这将需要时间。@Bruce-如果域离您很远或者到达/响应速度非常慢,那么是的,线程将帮助您。但请注意,您正在将软件投入似乎是网络拓扑或架构问题的领域。您需要首先找出DNS查找花费如此长时间的原因(以及您试图获得的速度是否确实可能)。DNS是否在您的子网中?中间有防火墙吗?是否所有节点(包括客户端)都使用相同类型的双工(全双工与半双工)?在使用软件之前,你必须找到它的根本原因。创建更多的InetSocketAddress似乎提高了速度。