1

我想知道是否有人可以给我一个线索。情况是我们有一台计算机有一个服务器应用程序,其余的有一个客户端应用程序。现在我的问题是我将如何跟踪服务器 IP 地址?我想要的是让客户端自动搜索服务器应用程序,而不考虑 IP 地址并找到它,因为使用无线网络的计算机正在使用 DHCP。所以我想知道是否有任何东西可以隐藏在使用 Java 的计算机中,其他计算机可以使用它来识别应用程序。谢谢。

4

3 回答 3

1

如果它们在同一个物理网络上,您的服务器可以通过 UDP 将其 IP 地址广播到该子网的广播地址。

您甚至可以遵循uPnP标准。

或者,您可以从已知的其他位置(例如 Web 服务器)托管服务器的位置。例如,调用已知 Web 服务器上的操作以检索服务器的 IP 地址。这允许您利用 DNS 查找第一台主机,然后从那里开始。

于 2013-10-02T14:17:16.420 回答
1

正如@Peter Lawrey 已经提到的那样,“好”的方法是使用 DNS(恕我直言,这是生产环境中唯一的解决方案),我更喜欢这种解决方案。

您还有另外两种可能性:

  • 让服务器在网络上广播他的地址。
  • 让客户端扫描网络。

这两种解决方案都不理想,因为您在网络上制造了很多噪音,可能被防火墙阻止等。因此,我真的建议您使用 DNS。

如果您不能使用 DNS 解决方案,我会选择让客户端搜索服务器的解决方案。

看看这个SO question,可能会让你开始。

于 2013-10-02T14:28:57.007 回答
0

如果您知道服务器的 DNS 名称,则可以使用该名称而不是 IP。Java 负责 DNS 查找。

否则,我想最简单的解决方案就是扫描网络的 IP 范围,然后尝试连接到每个 IP 并测试它是否有效。

其他解决方案将包括服务器广播,并且对于托管在小型网络中的应用程序来说会更加复杂并且可能过度杀伤力。

于 2013-10-02T14:21:18.803 回答