2017-02-17 43 views
-1

我的問題有點基本,但它讓我好奇一陣子:DNS如何與Java套接字一起工作?

在使用Java Socket時,使用服務器的名稱而不是IP地址嗎?

例如,如果我是某個地址爲「bogusserver.com」的服務器的管理員,並在使用「新套接字」(「bogusserver.com」)打開套接字時使用此地址而不是服務器的實際IP地址「,8080);'它實際上是否會正常打開套接字?

如果是這樣,Socket類究竟如何解決地址?它是否使用在運行代碼的計算機上註冊的DNS服務器?

我知道使用「localhost」的地址插座將正常打開,但隨後的一切工作與本地主機:P

+2

*使用Java Socket時,使用服務器的名稱而不是IP地址嗎?*爲什麼不試試?或者只是閱讀javadoc? –

回答

2

你只需要閱讀javadoc。 A Socket is constructed使用InetAddress。

InetAddress javadoc說:

主機名到IP地址的解析通過使用本地機器配置信息和網絡命名服務,如域名系統(DNS)和網絡相結合的實現信息服務(NIS)。正在使用的特定命名服務默認爲本地機器配置的一個。對於任何主機名,都會返回其相應的IP地址。

2

是否使用時,使用一臺服務器,而不是它的IP地址,工作名稱Java Socket?

DNS可能被操作系統用來將主機名轉換爲IP地址。使用TCP,UDP或ICMP無關緊要。

如果是這樣,Socket類究竟如何解決地址?

它將它傳遞給操作系統進行查找。

它使用在運行代碼的計算機上註冊的DNS服務器嗎?

操作系統已註冊DNS服務器,如果該主機名不存在hosts條目,則可能會聯繫他們。