這幾天在看Tornado的source code,有一些體會,自己動手寫了一個基於tornado tcpserver的echoserver
#!/usr/bin/env python
from tornado.netutil import TCPServer
from tornado.ioloop import IOLoop
class ECHOConnection(object):
def __init__(self, stream):
self._stream = stream
self.read()
def read(self):
self._stream.read_until('\r\n', self.echo_callback)
def echo_callback(self, data):
print "data:", data
self._stream.write(data)
self.read()
class ECHOServer(TCPServer):
def handle_stream(self, stream, address):
print "echo connecting..."
ECHOConnection(stream)
if __name__ == '__main__':
print "begin..."
server = ECHOServer()
server.listen(8000)
IOLoop.instance().start()