我正在用Python编写一个基于蜂鸣器的测验程序。它涉及到远程客户端,因此我正在使用Python 2.7.15中的socket
模块。我使用了Threading
模块来同时连接多个客户端。但是,我在接收所有客户的蜂鸣器输入方面遇到困难。
当一个用户按下蜂鸣器时,只有在其他所有用户都按下蜂鸣器后,她的输入才传送到服务器(灾难)。 这些是相关的代码段:
while allowConnections:
client, address = SERVER.accept()
addresses[client] = address
client.send(welcomeMessage.decode('ascii'))
clientManage = Thread(target=clientHandler)
clientManage.start()
clienthandler
中收到蜂鸣器输入的位置:index = 0
while buzzer == "":
buzzer = addresses[index].recv(256).decode('ascii')
index += 1
index %= NO_OF_USERS
client = addresses.keys()[index]
client.send("\nYou can answer now!".encode('ascii'))
answerReceived = str(client.recv(1024).decode('ascii')
如何在不使一个客户端由于其他客户端而延迟的情况下,从所有客户端获取输入?我试图研究选择模块,但看不出有什么帮助。