2017-02-17 35 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条目,则可能会联系他们。