System.out.println("Listening on " + address + ":" + port);
System.err.println("Proxy listening on " + address + ":" + port);
    public Listener(Plug plug, String address, int port, String base, ArrayList plugins) throws UnknownHostException, IOException {        if (plug == null) {            throw new IllegalArgumentException("plug may not be null");        }        _plug = plug;                if (address == null) {            throw new IllegalArgumentException("Address may not be null");        }        _address = address;        InetAddress addr;        if (address.equals("") || address.equals("*")) {            addr = null;        } else {            addr = InetAddress.getByName(address);        }        if (port < 1 || port > 65535) {            throw new IllegalArgumentException("port must be between 0 and 65536");        }        _port = port;        if (base != null) {            if (! base.startsWith("http")) {                throw new IllegalArgumentException("base must be null, or an http or https url");            }        }        _base = base;        _plugins = plugins;        _serversocket = new ServerSocket(port, 5, addr);                System.out.println("Listening on " + address + ":" + port);                try {            _serversocket.setSoTimeout(100);        } catch (SocketException se) {            System.err.println("Error setting sockettimeout " + se);            System.err.println("It is likely that this listener will be unstoppable!");        }        Thread t = new Thread(this);        t.setDaemon(false);        t.start();    }