簡體   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