4

在大学期间,我有一个使用 TCP 套接字在 Java 中制作简单聊天程序的个人项目。该项目仅用于教育目的。

我不太满意的一件事是客户端必须知道服务器的 IP 才能连接到它。所以我开始想,如果客户端能够检测到网络上是否有任何聊天服务器可用,那就太好了。

我怎样才能完成这样的机制?如果你能指出我正确的方向,我将不胜感激。:-)

我认为服务器必须进行某种广播,但我不知道该怎么做。

PS:我知道可能有其他/更好的方法可以做到这一点,但现在我对如何让客户端检测网络上的服务器特别感兴趣。

服务器是指聊天应用程序的服务器端部分,不像 Tomcat 服务器。

4

3 回答 3

3

有很多方法可以做到这一点,但我建议您查看JGroups。对于聊天应用程序来说,这可能有点矫枉过正,但它对多播的使用提供了有趣的可能性,例如无服务器架构。

于 2010-09-21T20:37:47.200 回答
2

如果在您的网络上启用了多播,您可以尝试使用它。

于 2010-09-21T20:44:36.650 回答
2

查看 ZeroConf,它提供了宣布和发现服务的机制。Apple 以 Bonjour 的名义广泛使用它。

jmdns 项目是一个 Java 实现,运行良好。 http://jmdns.sourceforge.net/

于 2010-09-21T20:36:37.463 回答