繁体   English   中英

在 python 中的 2 个无限循环之间传递数据

[英]Passing data between 2 endless loops in python

我正在使用一个 python 脚本,它使用 cmdloop 并从命令行获取输入:

import cmd


class SuperC2(cmd.Cmd):
    def default(self, line):
        f = open("command.txt", "w")
        f.write(line)
        f.close()


if __name__ == '__main__':
    SuperC2().cmdloop('Shell')

另一个脚本使用 flask 并读取 command.txt 文件并将其(通过 GET 请求)提供给客户端。 它还侦听执行此命令并发布 output 的客户端的 POST:

from flask import Flask
from flask import request

app = Flask(__name__)


@app.route('/command')
def command():
    str = open('command.txt', 'r').read()
    return str

@app.route('/result', methods = ['POST'])
def result():

    if request.method == 'POST':
        data = request.form
        print(data["command"])
        print(data["output"])
    return "ok"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

我真正想要实现的是拥有一个同时运行 flask 应用程序和 cmdloop 的脚本,只有 cmdloop 显示命令和结果(它来自 flask POST)。 有人可以举例说明如何做到这一点吗? 我猜是进程队列还是管道?

通常,在两个脚本/线程/你有什么之间传输数据的最简单方法是使用来自socket库的套接字。 只需让一个脚本/线程托管绑定到 127.0.0.1 的服务器并从另一个进程连接到它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM