如何在本地网络上查找活动服务器的实例



我有一个Java电子表格应用程序,它提供的功能之一(我开发的)是工作表共享。基本上,任何人都可以是客户端或服务器,因为该应用程序同时具有服务器和客户端代码。作为服务器的用户创建共享,指定 IP,然后创建共享并处于活动状态(最佳情况),服务器侦听其 IP 和所选端口上的客户端。

目前,客户端需要输入正在侦听的服务器的 IP 和端口才能连接。然后,服务器为该客户端创建一个新套接字,并在单独的线程上与 in 通信,而服务器继续侦听另一个套接字(传统的 TCP 行为)。这一切都工作正常。

我需要开发的是自动发现,例如,客户端不需要键入 IP 或端口,他们只需选择"加入共享..."。从菜单中,然后开始寻找服务器。找到一个时,它应该发送该 IP 上的活动共享列表。然后,用户从列表中选择要加入的共享,并已连接。

但是,我对如何解决这个问题有疑问。我应该像 DHCP 那样使用广播来轮询服务器吗?还是有更简单的方法?

我想实现的是:

客户端 -> 轮询本地网络 ->找到服务器 ->服务器向客户端发送活动共享列表 ->客户端选择要加入的共享 ->已连接!

从技术上讲,您正在寻找的是运行电子表格应用程序的活动服务器。

一种可能性是服务器代码每隔一段时间(比如每 15 秒)向网络发送一条"活动"消息。 客户端代码将侦听这些"活动"消息,并生成有意义的电子表格服务器列表。

另一种可能性是使用用于存储电子表格的同一数据库引擎来存储连接的服务器代码的 IP 和端口。 客户端代码将只读取数据库表以获取连接。

最新更新