Beispiel #1
0
    def connect(self, addr, timeout=None):
        domain, addr = parse_address_uri(addr)
        sock = socket(*domain)
        fcntl(sock.fileno(), F_SETFL, os.O_NONBLOCK)

        try:
            sock.connect(addr)
        except SocketError, (eno, _):
            if not eno == EINPROGRESS:
                raise
Beispiel #2
0
    def listen(self, factory, addr, backlog=5):
        domain, addr = parse_address_uri(addr)
        sock = socket(*domain)
        fcntl(sock.fileno(), F_SETFL, os.O_NONBLOCK)
        # we do not want 'address already in use' because of TCP-
        # connections in TIME_WAIT state
        sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

        sock.bind(addr)
        sock.listen(backlog)

        self.spawn(self.__accept, (factory, sock))