1
Socket的ctor具有將服務器作爲字符串或InetAddress的版本。是否緩存DNS查找的結果,以便另一個構造的套接字將跳過執行查找並使用緩存的值(如果可用)?如果是這樣,這是適用於這兩個版本,或只是一個採取InetAddress?Java Socket緩存DNS嗎?
Socket的ctor具有將服務器作爲字符串或InetAddress的版本。是否緩存DNS查找的結果,以便另一個構造的套接字將跳過執行查找並使用緩存的值(如果可用)?如果是這樣,這是適用於這兩個版本,或只是一個採取InetAddress?Java Socket緩存DNS嗎?
Java Socket緩存DNS嗎?
沒有,但InetAddress
呢,還是它的引擎蓋下的東西,和Socket
使用InetAddress
來解析名稱,所以效果肯定。
查看Java Networking Properties,networkaddress.cache.ttl
和朋友。
感謝您的澄清。 –
是的。 DNS查找由解析器緩存。 –
@ElliottFrisch Java文檔只談論的InetAddress下緩存,說班裏有一個緩存(我假設,這意味着它在類的所有對象之間共享)。但是,當使用帶字符串而不是InetAddress的Socket ctor時,怎麼樣?我們可以假設有一個內部的InetAddress也在那個緩存中共享嗎? –
@DisplayName該構造函數使用'InetAddress'來解析名稱。這是相同的緩存。 – EJP