0

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

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

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

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

我想实现的是:

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

4

1 回答 1

0

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

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

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

于 2012-06-12T15:46:58.870 回答