DNS如何与Java套接字一起使用?

时间:2017-02-17 20:29:01

标签: java sockets dns

我的问题有点基本,但它让我好奇一段时间:

使用Java Socket时,使用服务器名称而不是IP地址吗?

例如,如果我是某个服务器的管理员,其地址为“bogusserver.com”,并在使用“new Socket”(“bogusserver.com”)打开套接字时使用此地址而不是服务器的实际IP ,8080);'它会实际正常打开插座吗?

如果是,那么Socket类究竟是如何解决地址的呢?它是否使用在运行代码的计算机上注册的DNS服务器?

我知道使用“localhost”地址Socket会正常打开,但是,一切都适用于localhost:P

2 个答案:

答案 0 :(得分:3)

你只需要阅读javadoc。使用InetAddress的Socket is constructed

InetAddress javadoc说:

  

主机名到IP地址解析是通过使用本地计算机配置信息和网络命名服务(如域名系统(DNS)和网络信息服务(NIS))的组合来完成的。默认情况下,正在使用的特定命名服务是本地计算机配置的一个。对于任何主机名,将返回其对应的IP地址。

答案 1 :(得分:2)

  

使用Java Socket时,使用服务器名称而不是IP地址吗?

操作系统可能会使用DNS将主机名转换为IP地址。使用TCP,UDP或ICMP并不重要。

  

如果是,那么Socket类究竟是如何解决地址的呢?

它将它传递给操作系统进行查找。

  

它是否使用在运行代码的计算机上注册的DNS服务器?

操作系统已注册DNS服务器,如果该主机名没有hosts条目,则可以联系他们。