我有一个多人扑克游戏,许多客户端连接到服务器。该游戏目前处于最后一轮下注。一个客户决定不播放下一手牌并向服务器发出他正坐在外面的信号,但是在服务器将手交给客户后,就会出现静音信号。因此,当他没有想到的时候,选择坐在外面的客户伸出了手。我怎么解决这个问题?这是一张图。
client server
| send(sitout)
| send(hands)
| recv(sitout)
V recv(hand)
答案 0 :(得分:1)
客户端应发送“Sitout”或“Ready”信号,然后服务器将决定是否将手交给客户。
解决竞争条件并不是要及时倒退!没有实体(在这种情况下是服务器)可以在获得有关他将要做什么的所需信息之前做任何事情:)