如何在Java中有效地联网应用程序

时间:2013-10-02 14:12:14

标签: java networking

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

3 个答案:

答案 0 :(得分:1)

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

您甚至可以遵循uPnP标准。

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

答案 1 :(得分:1)

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

您还有两种可能性:

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

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

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

看一下这个SO问题,可能会让你开始。

答案 2 :(得分:0)

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

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

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