public boolean set_address(final String addr_)  {
        address.resolve(addr_, options.ipv4only > 0 ? true : false);
        
        endpoint = address.toString();
        try {
            handle = ServerSocketChannel.open();
            handle.configureBlocking(false);
            handle.socket().setReuseAddress(true);
            handle.socket().bind(address.address(), options.backlog);
        } catch (SecurityException e) {
            ZError.errno(ZError.EACCESS);
            close ();
            return false;
        } catch (IllegalArgumentException e) {
            ZError.errno(ZError.ENOTSUP);
            close ();
            return false;
        } catch (IOException e) {
            ZError.errno(ZError.EADDRINUSE);
            close ();
            return false;
        }
        
        socket.event_listening(endpoint, handle);
        return true;
    }