Dns 在java套接字编程中,如何使用主机名代替ip地址?

Dns 在java套接字编程中,如何使用主机名代替ip地址?,dns,Dns,我使用socket编程通过wi-fi连接两台java电脑。我在客户端使用了服务器的ip地址。但问题是,当服务器的ip地址被更改时,我必须更改客户端服务器的ip地址。当我使用主机名进行连接时,什么也不会发生。是否有任何方法可以使用静态ip或任何其他解决方案来连接这两个可以在任何网络上工作的解决方案。独立于服务器的ip地址。 请向我推荐解决方案。1。首先,如果您在局域网上,那么来自A类、B类、C类的任何IP都可以满足要求,但是如果您希望通过Internet访问,那么您必须小心私有和公共IP 2.对于

我使用socket编程通过wi-fi连接两台java电脑。我在客户端使用了服务器的ip地址。但问题是,当服务器的ip地址被更改时,我必须更改客户端服务器的ip地址。当我使用主机名进行连接时,什么也不会发生。是否有任何方法可以使用静态ip或任何其他解决方案来连接这两个可以在任何网络上工作的解决方案。独立于服务器的ip地址。
请向我推荐解决方案。

1。首先,如果您在局域网上,那么来自A类、B类、C类的任何IP都可以满足要求,但是如果您希望通过Internet访问,那么您必须小心私有和公共IP

2.对于通过internet的静态IP,您需要联系internet服务器提供商,或者您可以在网上试用一些基于动态IP提供静态IP的站点

3.但是如果由于服务器ip的更改而需要更改客户端代码,则可以执行以下操作

-使用域名服务器,使用服务器的
域名
,而不是IP。


-不要将服务器的原始IP存储在客户端代码中,使用一些变量,从一些
文件(如属性文件、数据库等)获取服务器的IP。
我认为有一个简单的解决方案可以解决您的问题。。。 您应该使用Inetaddress.getbyName(“用户pc”).getHostAddress()获取设备的ip地址


希望它能为您工作。

请发布一些示例代码并在您的评论中进行扩展:当我使用主机名进行连接时,什么都不会发生。您的意思是像使用DNS或动态DNS一样吗?@DuncanJones Sir这意味着当我使用InetAddress.getByHost(“Rahul PC”)。。。它在本地连接到客户机,但在远程服务器的情况下,没有连接。这与编程毫无关系——我不知道为什么人们要求您提供示例代码,这与此无关。您需要在LAN上设置名称服务(即“DNS”)。这是一项服务,允许计算机根据名称查找其他计算机的地址。如果您需要帮助设置此项,那么您在我们的系统管理员/桌面支持网站上会有更好的运气。我建议把你的问题移到那里。@ErnestFriedman Hill在wi-fi上也可以吗?你必须配置DNS,然后只有你才能使用域名。因此,您可以根据其名称解析ip。如果你不想让它复杂化,只需使用一个简单的文件,让你的客户端程序从那里读取服务器IP…所以当任何更改发生时,您的客户端程序不需要更改。只需更改外部文件中的ip。我在上面的回答中提到了这一点。实际上,我使用android作为客户端,java类作为服务器。现在如果没有套接字编程,我无法将我的客户端连接到电脑的数据库或文件。你的答案在我的两个班级都使用java的情况下是最好的。。。。android客户端是用java编写的,不是吗。。。你可以通过socket编程来实现这一点。。。。执行模型部分(业务逻辑)的android代码是用java编写的……是的,我同意,先生。。但根据你的说法,我必须连接到包含服务器ip地址的文件。。。我是瑞特吗?但据我在安卓系统中的说法,无法直接连接到包含该文件或DB的PC。亲爱的,请将该文件存储在移动设备的SD卡中。。。。。来吧,这很简单..是的,在AndroidManifest.xml文件中授予ExternalStorage权限