我正在研究一台小型网络游戏(仅限局域网),其中一台计算机充当服务器,其他所有计算机(包括运行在同一台计算机上的实际游戏)充当服务器客户端。实质上,服务器对用户来说是透明的,但是为了简化我的状态管理而存在。我现在的基本概念是每个玩家的电脑都会通过广播说“嗨,我想玩”,并且会保留网络上其他玩家的名单。在每个运行游戏的玩家表示他们准备好之后,选择一台计算机作为服务器,其余的默认为客户端。选择局域网上的计算机作为服务器
当选择局域网上的哪台计算机作为服务器时,是否真的有任何确定的方法来选择一个并通知其他人?
我一直在琢磨着简单地让所有玩家的电脑选择一个随机数,并将最低(或最高,无所谓)的那个作为服务器(重新生成计算机的随机数字滚动同一个)。每台计算机都会收到其他人的“滚动”数量,并可以确定哪台服务器可以连接到服务器。这似乎很粗糙,但我不确定它是否重要,因为所有的计算机都会在彼此的几英尺范围内处于同一网络中。这会充分做好这项工作吗?还是有更好的方法?
这个概念在分布式计算中被称为[领导选举](http://en.wikipedia.org/wiki/Leader_election)。 – chrisaycock
@chrisaycock非常有趣的概念,感谢您指出。以此为出发点已经出现了一些非常有用的论文和其他资源。 – Gemini14