public LCM(String... urls) throws IOException
    {
        if (urls.length==0) {
            String env = System.getenv("LCM_DEFAULT_URL");
            if (env == null)
                urls = new String[] {"udpm://239.255.76.67:7667"};
            else
                urls = new String[] { env };
        }

        for (String url : urls) {
            // Allow passing in NULL or the empty string to explicitly indicate
            // the default LCM URL.
            if(null == url || url.equals("")) {
                url = System.getenv("LCM_DEFAULT_URL");
                if (url == null)
                    url = "udpm://239.255.76.67:7667";
            }
        	
            URLParser up = new URLParser(url);
            String protocol = up.get("protocol");

            if (protocol.equals("udpm"))
                providers.add(new UDPMulticastProvider(this, up));
            else if (protocol.equals("tcpq"))
                providers.add(new TCPProvider(this, up));
            else if (protocol.equals("file"))
                providers.add(new LogFileProvider(this, up));
            else
                System.err.println("LCM: Unknown URL protocol: "+protocol);
        }
    }