Esempio n. 1
0
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")
Esempio n. 2
0
                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()