title: Simple UDP broadcast client and server on different machines
body: <p>The following client and server UDP broadcast code works on fine when both are on the same PC.  However when I have them on separate PC's in the same WIFI LAN nothing happens at all.  I have  managed to get a multicast version working fine on the two separate PC's but not this :(.  I have shut down firewalls on both and succesfully pinged each from both PC's.</p>
  
  <p>The idea behind this test is so I can use this method so a client can find a server on the LAN by sending a datagram packet (peer discovery).  I think I'm doing something wrong with the host name or something but after a week of googling and testing new ideas I'm officially all out of them :(.</p>
  
  <pre><code>public class Client
  {
      private String hostname= "localhost";
      private int port=1234;
      private InetAddress host;
      private DatagramSocket socket;
      DatagramPacket packet;
  
      public void run()
      {
          try
          {
              host = InetAddress.getByName(hostname);
              socket = new DatagramSocket (null);
              packet=new DatagramPacket (new byte[100], 0,host, port);
              socket.send (packet);
              packet.setLength(100);
              socket.receive (packet);
              socket.close ();
              byte[] data = packet.getData ();
              String time=new String(data);  // convert byte array data into string
              System.out.println(time);
          }
          catch(Exception e)
          {
              e.printStackTrace();
          }
      }
  }
  
  
  
  public class Server
  {
      public static final int DEFAULT_PORT = 1234;
      private DatagramSocket socket;
      private DatagramPacket packet;
  
      public void run()
      {
          try
          {
              socket = new DatagramSocket(DEFAULT_PORT);
          }
          catch( Exception ex )
          {
              System.out.println("Problem creating socket on port: " + DEFAULT_PORT );
          }
  
          packet = new DatagramPacket (new byte[1], 1);
  
          while (true)
          {
              try
              {
                  socket.receive (packet);
                  System.out.println("Received from: " + packet.getAddress () + ":" +
                                     packet.getPort ());
                  byte[] outBuffer = new java.util.Date ().toString ().getBytes ();
                  packet.setData (outBuffer);
                  packet.setLength (outBuffer.length);
                  socket.send (packet);
              }
              catch (IOException ie)
              {
                  ie.printStackTrace();
              }
          }
      }
  }
  </code></pre>
  
  <p>Just wondering if anyone can help?</p>