2016-07-07 5 views
0

Tornado ioloop.py geben ein Beispiel Verwendung für einen einfachen TCP-Server, durch diese einfache kann ausgeführt werden, aber was ist handle_connection in der Funktion connection_ready (die Endzeile) oder muss ich selbst definieren?Was ist die handle_connection im Tornado-Modul ioloop simple tcpserver connection_ready?

import errno 
    import functools 
    import tornado.ioloop 
    import socket 
    def connection_ready(sock, fd, events): 
     while True: 
      try: 
       connection, address = sock.accept() 
      except socket.error as e: 
       if e.args[0] not in (errno.EWOULDBLOCK, errno.EAGAIN): 
        raise 
       return 
      connection.setblocking(0) 
      handle_connection(connection, address) 
    if __name__ == '__main__': 
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) 
     sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
     sock.setblocking(0) 
     sock.bind(("", port)) 
     sock.listen(128) 
     io_loop = tornado.ioloop.IOLoop.current() 
     callback = functools.partial(connection_ready, sock) 
     io_loop.add_handler(sock.fileno(), callback, io_loop.READ) 
     io_loop.start() 

Antwort

0

Ja, handle_connection ist eine Funktion, die Sie für Ihre Anwendung schreiben.

Siehe auch die tornado.tcpserver.TCPServer Klasse, die ein wenig einfacher zu verwenden ist als auf der IOLoop direkt bauen.

Verwandte Themen