public static ServerConnections getServerConnections(PropsUtils props, boolean askForServerHost) {
        String serverUrl = props.getString(PropsUtils.serverHost);
        String oldServerUrl = serverUrl;
        while ( true ) {
            if ( askForServerHost ) {
                serverUrl = JOptionPane.showInputDialog("SqueezeServerHost: ", serverUrl);
                if ( serverUrl == null ) {
                    return null;
                }
            }
            askForServerHost = true;  // On failure ask them
            SlimServer slimServer = null;
            try {
                System.out.println("Trying to connect to " + serverUrl);
                if ( serverUrl.indexOf(':') > 0 ) {
                    String[] bits = serverUrl.split(":");
                    if ( bits.length == 2 ) {
                        slimServer = new SlimServer(bits[0], Integer.parseInt(bits[1]));
                    } else if ( bits.length == 3 ) {
                        slimServer = new SlimServer(bits[0], Integer.parseInt(bits[1]), Integer.parseInt(bits[2]));
                    } else {
                        System.out.println("Bad url? ["+serverUrl+"], expecting url:webport or url:cliport:webport");
                        slimServer = new SlimServer(serverUrl);
                    }
                } else {
                    slimServer = new SlimServer(serverUrl);
                }
                CoverSource coverSource = new SlimCoverSource(slimServer, noteImage, new CachedOnFileSystemCS());
                if ( !serverUrl.equals(oldServerUrl) ) {
                    props.setString(PropsUtils.serverHost, serverUrl);
                    props.save();
                }
                return new ServerConnections(slimServer, coverSource);
            } catch (SlimConnectionException e) {
                JOptionPane.showMessageDialog(null, "Failed to connect to ["+serverUrl+"] with "+e);
            } catch (IOException e) {
                JOptionPane.showMessageDialog(null, "Failed to get covers from ["+serverUrl+"] with "+e);
            }
        }
    }