Пример #1
0
            #print("recv " + str(mv))
            conn.send("*1\r\n$4\r\npong\r\n")
            return MessageCallback.__call__(self, conn, mv)

    class ConnectHandler(OnConnectCallback):
        def __call__(self, conn):
            OnConnectCallback.__call__(self, conn)
            #print("on connect, send ping")
            #conn.send("*3\r\n$3\r\nset\r\n$3\r\nage\r\n$3\r\n711\r\n")

    class NewConnHandler(NewConnectionCallback):
        def __call__(self, conn):
            NewConnectionCallback.__call__(self, conn)
            conn.setMsgCallback(MsgHandler())
            conn.setOnConnectCallback(ConnectHandler())

    def print_time(a='default'):
        import time
        print("From print_time", time.time(), a)

    loop = IOLoop()
    loop._sched.enter(delay=0.4, count=10, action=print_time)
    acceptor = Acceptor(port=6379, loop=loop)
    acceptor.setNewConnCallback(NewConnHandler())
    #connector = Connector(loop = loop)
    #connector.setNewConnCallback(NewConnHandler())
    #connector.connect(port = 6379)
    print("start")

    loop.start()
Пример #2
0
class UDPEchoServer(UDPServer):

    def handle_receive(self):
        msg, addr = self.socket.recvfrom(8192)
        self.socket.sendto(msg, addr)


def fib(n):
    if n < 2:
        return 1
    else:
        return fib(n-1) + fib(n-2)


class UDPFibServer(UDPServer):

    def handle_receive(self):
        msg, addr = self.socket.recvfrom(128)
        n = int(msg)
        pool.run(fib, (n,), callback=lambda r: self.respond(r, addr))

    def respond(self, result, addr):
        self.socket.sendto(str(result).encode('ascii'), addr)


if __name__ == '__main__':
    # IOLoop((UDPTimeServer(('', 14000)), UDPEchoServer(('', 15000)))).run()
    pool = ThreadPoolHandler(4)
    IOLoop((pool, UDPFibServer(('', 16000)))).run()