title: Samples with JmDNS
body: <p>I've been able to get the samples that come with JmDNS to compile and run, however I can't get any of the classes to discover my services.</p>
  
  <p>I'm running a Windows environment with multiple PC's running VNC, SSH &amp; Apache and I've been trying to get JmDNS to discover at least one of these...</p>
  
  <p>What I ideally want is to be able to detect all running VNC servers on my network. Is there some sort of client and server pairing where I can only discover a service if I've registered it using JmDNS? </p>
  
  <p>Any help getting some results out of the samples will be appreciated, the documentation isn't much help.</p>
  
  <pre><code>import java.io.IOException;
  import java.util.logging.ConsoleHandler;
  import java.util.logging.Level;
  import java.util.logging.Logger;
  
  import javax.jmdns.JmDNS;
  import javax.jmdns.ServiceEvent;
  import javax.jmdns.ServiceListener;
  
  /**
   * Sample Code for Service Discovery using JmDNS and a ServiceListener.
   * &lt;p&gt;
   * Run the main method of this class. It listens for HTTP services and lists all changes on System.out.
   *
   * @author Werner Randelshofer
   */
  public class DiscoverServices {
  
      static class SampleListener implements ServiceListener {
          @Override
          public void serviceAdded(ServiceEvent event) {
              System.out.println("Service added   : " + event.getName() + "." + event.getType());
          }
  
          @Override
          public void serviceRemoved(ServiceEvent event) {
              System.out.println("Service removed : " + event.getName() + "." + event.getType());
          }
  
          @Override
          public void serviceResolved(ServiceEvent event) {
              System.out.println("Service resolved: " + event.getInfo());
          }
      }
  
      /**
       * @param args
       *            the command line arguments
       */
      public static void main(String[] args) {
          try {
  
              // Activate these lines to see log messages of JmDNS
              boolean log = false;
              if (log) {
                  Logger logger = Logger.getLogger(JmDNS.class.getName());
                  ConsoleHandler handler = new ConsoleHandler();
                  logger.addHandler(handler);
                  logger.setLevel(Level.FINER);
                  handler.setLevel(Level.FINER);
              }
  
              final JmDNS jmdns = JmDNS.create();
              String type = "_http._tcp.local.";
              if(args.length &gt; 0) {
                  type = args[0];
              }
              jmdns.addServiceListener(type, new SampleListener());
  
              System.out.println("Press q and Enter, to quit");
              int b;
              while ((b = System.in.read()) != -1 &amp;&amp; (char) b != 'q') {
                  /* Stub */
              }
              jmdns.close();
              System.out.println("Done");
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
  }
  </code></pre>