pythonsocket:makeserver&;客户互相等待?

pythonsocket:makeserver&;客户互相等待?,python,sockets,python-3.x,Python,Sockets,Python 3.x,我正在尝试用Python构建一个小型控制台游戏。一个玩家扮演客户端,另一个玩家扮演服务器 服务器和客户端都必须向另一个玩家发送输入,并且必须等待两个玩家提交输入 我解决了这个问题,但在两位玩家提交他们的输入后,我希望他们互相发送他们的分数,如下所示: scoreString = str(playerScore) scoreByte = bytearray(scoreString,"ascii") sock.send(scoreByte) otherPlayerSc

我正在尝试用Python构建一个小型控制台游戏。一个玩家扮演客户端,另一个玩家扮演服务器

服务器和客户端都必须向另一个玩家发送输入,并且必须等待两个玩家提交输入

我解决了这个问题,但在两位玩家提交他们的输入后,我希望他们互相发送他们的分数,如下所示:

    scoreString = str(playerScore)
    scoreByte = bytearray(scoreString,"ascii")
    sock.send(scoreByte)
    otherPlayerScoreByte = sock.recv(1024)
    otherScore = int(otherPlayerScoreByte.decode("ascii"))

这一部分对于服务器和客户端都是相同的。发生的情况是,谁先提交输入,上面的代码工作正常,但另一个代码卡在这一行:

 otherPlayerScoreByte = sock.recv(1024)
就像它从来没有收到其他玩家的分数一样


他们的方法是检查服务器/客户端在继续之前是否已收到数据?

“发生的情况是,谁先提交了他们的输入,上面的代码工作正常”…因此“服务器”和“客户端”都发生了这种情况?是,该代码适用于首先提交输入的任何人。我认为您必须区分服务器和客户端。当服务器
send
s他的分数时,客户端必须
recv
,然后客户端
send
s和服务器
recv
s。嗯,翻转顺序(意味着服务器在发送之前接收)不会改变事情。我可以用while循环来确保服务器在发送自己的客户端分数之前收到客户端分数吗?你说的“卡住”是什么意思?错误?阻止呼叫?我试图重现您的问题,但它在客户端和服务器上都能按此顺序使用
send
recv
。也许问题出在代码的另一部分?