http.server - 将数据发送到客户端

时间:2016-08-19 10:10:50

标签: multithreading python-3.x instance

给每个人打气,

我有一个运行线程的main。该线程使用http.server管理HTTP服务器,如下所示:

import binascii, threading
from http.server import BaseHTTPRequestHandler, HTTPServer

class Com(threading.Thread):

    def __init__(self, queue):      
        MyHandler.queue = queue
        threading.Thread.__init__(self)

    def run(self):
        httpd = HTTPServer(('10.0.0.254', 8000), MyHandler)
        httpd.serve_forever()

class MyHandler(BaseHTTPRequestHandler):
    queue = None    

    def do_POST(self):
        " Receive a POST and put the received frame in the queue "    

    def send(self, toSend):
        self.send_response(200, "OK")
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(toSend)    

do_POST方法效果很好,它接收数据并通过队列将其发送到主数据库。 我想要的是:有时当我想要时,主要命令服务器发送一些数据。通常,要发送的代码是好的。我的问题是,我无法从主服务器访问HTTP服务器实例来调用send方法,因为它是由http.server管理的。 在Com类(主要的实例)中,我尝试了类似的东西:

def sendThroughServer(self, toSend):
    MyHandler.send(toSend)

同样使用类方法,但它似乎不起作用,因为它需要" self"。

我该怎么办?

希望很清楚。提前谢谢。

0 个答案:

没有答案