在大学期间,我有一个使用TCP套接字在Java中创建简单聊天程序的个人项目。该项目仅用于教育目的。
我不满意的一件事是,客户端必须知道服务器的IP才能连接到它。所以我认为如果客户能够检测到网络上是否有可用的聊天服务器会很好。
我怎样才能完成这样的机制?如果你能指出我正确的方向,我将不胜感激。 : - )
我认为服务器必须进行某种广播,但我不知道该怎么做。
PS:我知道可能还有其他/更好的方法,但是现在我对如何让客户端检测网络上的服务器特别感兴趣。服务器是指聊天应用程序的服务器端部分,而不是Tomcat服务器。
答案 0 :(得分:3)
有很多方法可以做到这一点,但我建议您查看JGroups。对于聊天应用程序来说可能有些过分,但它对多播的使用提供了诸如无服务器架构之类的有趣可能性。
答案 1 :(得分:2)
查看ZeroConf,它提供了宣布和发现服务的机制。 Apple以Bonjour的名义广泛使用它。
jmdns项目是一个Java实现,它可以很好地工作。 http://jmdns.sourceforge.net/
答案 2 :(得分:2)
如果在您的网络上启用了多播,您可以尝试使用多播。