我写了一个简单的服务器客户端软件,它在本地网络/24(255.255.255.0(上运行,我不知道如何在IP地址发生变化时找到它。
-
服务器的 IP 地址不是静态的。
-
我无法保存 mac 地址,然后从 arp 表中检索 IP 地址,因为它将在不同的计算机上运行。
客户端找到正确 IP 地址的唯一方法是尝试整个范围,直到连接被接受?
您可以使用服务器的主机名而不是 IP。当 IP 更改时,主机名应保持不变。
您可以通过多种方式建立主机名。以编程方式:
String hostName = InetAddress.getLocalHost().getHostName();
或者使用操作系统命令或工具。
例如,在Windows上,它可能是
ipconfig /all
在 Linux 上,它可能是
hostname
或
hostnamectl
知道主机名后,您可以使用它来建立连接。或者,您也可以在本地网络中的任何客户端上以编程方式获取服务器的 IP。在 Java 中,您可以使用以下代码:
InetAddress.getByName("serverHostName").getHostAddress()