[英]echo http server tornado
如何从Tornado创建HTTP回显服务器?
#!/usr/bin/env python
import signal
from tornado.ioloop import IOLoop
from tornado.tcpserver import TCPServer
import tornado.web
def handle_signal(sig, frame):
IOLoop.instance().add_callback(IOLoop.instance().stop)
class EchoServer(TCPServer):
def handle_stream(self, stream, address):
self._stream = stream
self._read_line()
def _read_line(self):
self._stream.read_until('\n' ,self._handle_read)
def _handle_read(self, data):
self._stream.write(data, '\n')
self._read_line()
if __name__ == '__main__':
signal.signal(signal.SIGINT, handle_signal)
signal.signal(signal.SIGTERM, handle_signal)
server = EchoServer()
server.bind(8001)
server.start(25)
IOLoop.instance().start()
IOLoop.instance().close()
我该怎么做这个http echo服务器出了什么问题? 我不是新手,谢谢!
如果您解释了运行此代码时发生的情况以及期望的结果,则您的问题将更加清楚。
一个TCPServer对象可以处理许多连接,因此,应在该对象上创建一个新对象,而不是在handle_stream
中分配给self.stream。
stream.write的第二个参数是回调; 看起来你的意思是self._stream.write(data + '\\n')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.