class AnotherReactor(threading.Thread): def __init__(self, port, type): threading.Thread.__init__(self) self._acceptor = Acceptor(HttpConnection) self._reactor = Reactor(select_type = type) if not self._reactor.open(): print("reactor open failed") self._acceptor.open(("127.0.0.1", port), self._reactor) def run(self): while True: if not self._reactor.handle_events(): break print("another reactor exit")
def __init__(self, port, type): threading.Thread.__init__(self) self._acceptor = Acceptor(HttpConnection) self._reactor = Reactor(select_type = type) if not self._reactor.open(): print("reactor open failed") self._acceptor.open(("127.0.0.1", port), self._reactor)
self._send_bytes += self._sock.send(self._buffer[self._send_bytes:]) if self._send_bytes == len(self._buffer): break except socket.error as e: if e[0] == errno.EWOULDBLOCK: return True print(e) break self._buffer = None self._send_bytes = 0 return False def handle_close(self, handle, mask): print("handle close") super(Echo, self).handle_close(handle, mask) if __name__ == '__main__': g_reactor = Reactor() if not g_reactor.open(): print("reactor open failed") if sys.argv[1] == 'server': g_acceptor = Acceptor(Echo) g_acceptor.open(("127.0.0.1", 8008), g_reactor) elif sys.argv[1] == 'client': g_connector = Connector() g_connector.open(g_reactor) g_connector.connect(Echo('client'), ("127.0.0.1", 8008), 5) g_reactor.reactor_event_loop()