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