我正在开发一个将与 LAN 中的服务器连接的多客户端应用程序。
每个客户端都可以发送一个更改服务器状态的命令。我将称之为“ServerStatus”,它是一个具有一些值的对象。
现在,如果 ServerStatus 发生变化,所有客户端都应该立即知道它。我的想法是这样工作:
服务器每秒向所有侦听客户端发送一个多播,其版本号为 ServerStatus。所以如果一个新的客户端加入了组播组,他会看他的versionNumber是否相同。如果没有,客户端将通过 UDP 询问当前版本的 ServerStatus。
当客户端发送一个改变 ServerStatus 的命令时,服务器会将他当前的(和新的)ServerStatus 发送到同一个多播组,而在另一个线程中,ServerStatus 的版本号仍然是每秒共享的。
各位小伙伴觉得这样处理好不好?或者这会导致太多问题,......等等