我有一个用Java编写的电子表格应用程序,它提供的功能之一(我开发的)是工作表共享。基本上,任何人都可以是客户端或服务器,因为应用程序既有服务器代码也有客户端代码。作为服务器的用户创建共享,指定IP,然后创建共享并使用服务器侦听其IP和选定端口上的客户端并处于活动状态(最佳情况)。
此时,客户端需要输入正在侦听的服务器的IP和端口才能连接。然后,服务器为该客户端创建一个新的套接字,并在一个单独的线程上与中通信,同时服务器继续侦听另一个线程(传统的TCP行为)。这一切都运行得很好。
我需要开发的是自动发现,例如,客户端不需要键入IP或端口,他们只需选择‘加入共享...’。然后它开始寻找服务器。当找到一个时,它应该发送其在该IP上的活动共享列表。然后,用户从列表中选择要加入的共享,并进行连接。
然而,我对如何解决这个问题有疑问。我是否应该像DHCP那样使用广播来轮询服务器?还是有一种更简单的方法?
我想要实现的是:
Client ->轮询本地网络->找到服务器->服务器将活动共享列表发送到client ->客户端选择共享以加入-> connected!
发布于 2012-06-12 23:46:59
从技术上讲,您要寻找的是运行电子表格应用程序的活动服务器。
一种可能是您的服务器代码每隔一段时间(例如每15秒)向网络发送一条“活动”消息。您的客户端代码将侦听这些“活动”消息,并生成一个有意义的电子表格服务器列表。
另一种可能是使用您用来存储电子表格的相同数据库引擎来存储连接的服务器代码的IP和端口。客户端代码只需读取数据库表即可获得连接。
https://stackoverflow.com/questions/10998435
复制相似问题