Networking 如何解决这种网络竞争状况?

Networking 如何解决这种网络竞争状况?,networking,race-condition,Networking,Race Condition,我有一个多人扑克游戏,其中许多客户端连接到服务器。这场比赛目前已进入最后一轮下注。一个客户决定不玩下一手牌,并向服务器发出信号,表示他正在退出,但在服务器将牌交给客户后,退出信号到达。因此,选择坐视不理的客户在不该插手的情况下得到了帮助。我怎样才能解决这个问题?这是一张图表 client server | send(sitout) | send(hands) | recv(sitout) V recv(hand)

我有一个多人扑克游戏,其中许多客户端连接到服务器。这场比赛目前已进入最后一轮下注。一个客户决定不玩下一手牌,并向服务器发出信号,表示他正在退出,但在服务器将牌交给客户后,退出信号到达。因此,选择坐视不理的客户在不该插手的情况下得到了帮助。我怎样才能解决这个问题?这是一张图表

   client        server
 | send(sitout)
 |               send(hands)
 |               recv(sitout)
 V recv(hand)
客户机应该发送“Sitout”或“Ready”信号,然后服务器将决定是否将手交给客户机


解决比赛条件并不是在时间上倒退!没有实体(在本例中是服务器)可以在获得关于他将要做什么的所需信息之前做任何事情:)

听起来像是说,经销商在从每个玩家那里得到“是”或“不是”之前不应该进行交易,对吗?这就是解决方案:每个客户机在交易前都需要确认服务器。