超时读取用户的所有字符 - Python 3

问题描述

我想创建一个客户端,它的目的是读取用户在给定时间内按下的所有字符并将每个字符发送到服务器。此外,我希望将不同客户的字符分开,即使他们的进程在同一台计算机上运行并因此从同一键盘到达。现在这是我的代码:

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 "来自他们俩。

注意事项:

  1. 使用 Python 3.X
  2. 在 Windows 和 Linux 上均可使用

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...