给每个人打气,
我有一个运行线程的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"。
我该怎么办?
希望很清楚。提前谢谢。