Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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套接字是否缓存DNS?_Java_Sockets_Networking_Dns_Nio - Fatal编程技术网

Java套接字是否缓存DNS?

Java套接字是否缓存DNS?,java,sockets,networking,dns,nio,Java,Sockets,Networking,Dns,Nio,套接字的ctor具有将服务器作为字符串或InetAddress的版本。DNS查找的结果是否已缓存,以便另一个构造的套接字将跳过执行查找并使用缓存的值(如果可用)?如果是这样的话,这是适用于两个版本,还是只适用于使用InetAddress的版本 Java套接字是否缓存DNS 没有,但是InetAddress有,或者它的引擎盖下有什么东西,并且Socket使用InetAddress解析名称,所以实际上是的 请参阅,networkaddress.cache.ttl和好友。是。DNS查找由解析器缓存。@

套接字的ctor具有将服务器作为字符串或InetAddress的版本。DNS查找的结果是否已缓存,以便另一个构造的套接字将跳过执行查找并使用缓存的值(如果可用)?如果是这样的话,这是适用于两个版本,还是只适用于使用InetAddress的版本

Java套接字是否缓存DNS

没有,但是
InetAddress
有,或者它的引擎盖下有什么东西,并且
Socket
使用
InetAddress
解析名称,所以实际上是的


请参阅,
networkaddress.cache.ttl
和好友。

是。DNS查找由解析器缓存。@ElliottFrisch Java文档只谈到InetAddress下的缓存,说该类有一个缓存(我假设这意味着它在该类的所有对象之间共享)。但是,如果使用接受字符串而不是InetAddress的套接字构造函数,会怎么样呢?是否可以假设缓存中也有一个内部InetAddress共享?@DisplayName构造函数使用
InetAddress
解析名称。它是同一个缓存。这是因为DNS名称解析是由
gethostbyname2()
完成的(这是本机代码,系统上每个程序的解析过程都是相同的,所以它是系统级缓存)。@ElliottFrisch我不明白。这是一个GNU扩展,它不维护缓存。Java可以做到这一点。感谢您的澄清。