#!/usr/bin/env python # -*- coding: utf-8 -*- # Created on 2018年4月18日 # author: Irony # site: https://github.com/892768447 # email: 892768447@qq.com # file: 控制小车.server # description: __Author__ = """By: Irony QQ: 892768447 Email: 892768447@qq.com""" __Copyright__ = 'Copyright (c) 2018 Irony' __Version__ = 1.0 import logging from tornado import gen from tornado.ioloop import IOLoop from tornado.iostream import StreamClosedError from tornado.options import options, define from tornado.tcpserver import TCPServer define("port", default=8888, help="TCP port to listen on") logger = logging.getLogger(__name__) class EchoServer(TCPServer): @gen.coroutine def handle_stream(self, stream, address): while True: try: data = yield stream.read_until(b"\n") logger.info("Received bytes: %s", data) if not data.endswith(b"\n"): data = data + b"\n" yield stream.write(data) except StreamClosedError: logger.warning("Lost client at host %s", address[0]) break except Exception as e: print(e) if __name__ == "__main__": options.parse_command_line() server = EchoServer() server.listen(options.port) logger.info("Listening on TCP port %d", options.port) IOLoop.current().start()