#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()
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()