繁体   English   中英

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

[英]How to efficiently network an application in Java

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

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

您甚至可以遵循uPnP标准。

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

如@Peter Lawrey所提到的,“好的”方式是使用DNS(在生产环境中,恕我直言唯一的解决方案),我更喜欢该解决方案。

您还有另外两种可能性:

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

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

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

看看这个SO问题,可能会让您入门。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM