问题描述
我想创建一个客户端,它的目的是读取用户在给定时间内按下的所有字符并将每个字符发送到服务器。此外,我希望将不同客户的字符分开,即使他们的进程在同一台计算机上运行并因此从同一键盘到达。现在这是我的代码:
import time
import socket
from pynput import keyboard
end = time.time()
TIME_TO_PLAY = 10 # seconds
def pressed(pressed_key):
if time.time() < end:
try:
ch = str(pressed_key)[1] # '{0}',char
sock.sendall(ch.encode())
except:
pass
end = time.time() + TIME_TO_PLAY
listener = keyboard.Listener(on_press=pressed)
listener.start()
end = time.time() + TIME_TO_PLAY
while time.time() < end: # wait for input
pass
listener.stop()
但是,该代码的问题在于,例如,如果我在同一台计算机上运行 2 个客户端进程,并且对于第一个客户端,我按“aaa”,对于第二个我按“bbb”,服务器会收到“aaabbb "来自他们俩。
注意事项:
- 使用 Python 3.X
- 在 Windows 和 Linux 上均可使用
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)