def testSignalHandler(self): signalHandlerCallback = lambda signum, events, obj: obj.removeFromLoop() signalHandler = libevent.createSignalHandler(signal.SIGUSR1, signalHandlerCallback) signalHandler.addToLoop() signalSenderCallback = lambda fd, events, obj: os.kill(os.getpid(), signal.SIGUSR1) timer = libevent.createTimer(signalSenderCallback) timer.addToLoop(1) libevent.dispatch()
def main(): libevent.createSignalHandler(signal.SIGINT, handleSigInt).addToLoop() echosrv = EchoServer() libevent.dispatch()
self.sock = sock self.addr = addr self.sock.setblocking(False) libevent.createEvent(sock, libevent.EV_READ, self.callback_onread).addToLoop() def callback_onread(self, fd, events, event_obj): buf = self.sock.recv(4096) if not buf: # just disconnect self.sock.close() return # Yeah, print! print "%r %r" % (self.addr, buf) self.sock.send("finished") # reuse current event event_obj.addToLoop() if __name__ == '__main__': # bind. sock_srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock_srv.setblocking(False) sock_srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock_srv.bind(('localhost', 50000)) sock_srv.listen(5) libevent.createSignalHandler(signal.SIGINT, callback_interrupt).addToLoop() libevent.createEvent(sock_srv, libevent.EV_READ | libevent.EV_PERSIST, callback_onconnect).addToLoop() libevent.dispatch()
class Connection: def __init__(self, sock, addr): self.sock = sock self.addr = addr self.sock.setblocking(False) libevent.createEvent(sock, libevent.EV_READ, self.callback_onread).addToLoop() def callback_onread(self, fd, events, event_obj): buf = self.sock.recv(4096) if not buf: # just disconnect self.sock.close() return # Yeah, print! print "%r %r" % (self.addr, buf) self.sock.send("finished") # reuse current event event_obj.addToLoop() if __name__ == '__main__': # bind. sock_srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock_srv.setblocking(False) sock_srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock_srv.bind(('localhost', 50000)) sock_srv.listen(5) libevent.createSignalHandler(signal.SIGINT, callback_interrupt).addToLoop() libevent.createEvent(sock_srv, libevent.EV_READ|libevent.EV_PERSIST, callback_onconnect).addToLoop() libevent.dispatch()