我正在用 python 编写一个简单的网络服务器。以下是我的代码的简化版本:
class StreamerHandler(SimpleHTTPRequestHandler):
def do_POST(self):
try:
length = int(self.headers.getheader('content-length'))
data = self.rfile.read(length)
self.send_response(200, "OK")
#process_data(data, self.client_address)
except Exception as inst:
logging.error(type(self).__name__ + "/" + type(inst).__name__ + " (" + inst.__str__() + ")")
class Streamer(TCPServer):
def __init__(self, overlay):
self.allow_reuse_address = True
TCPServer.__init__(self, ("", port), StreamerHandler)
我想做的是发送响应关闭 TCP 连接,然后运行可能需要很长时间才能完成的 process_data 方法。
有什么办法可以实现吗?我能想到的唯一解决方案是使用专用线程来处理。
最佳答案
我试过了,你实际上需要两个命令(按顺序)来关闭它:
self.finish()
self.connection.close()
关于python - SimpleHTTPRequestHandler 在从 do_POST 方法返回之前关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6594418/