title: Java DatagramSocket listening on a broadcast address
body: <p>I have written the simple test class which is meant to listen on Eth and receive all <strong>UDP</strong> packets, which go to port <code>5001</code>:</p>
  
  <pre><code>public class Main {
  
    public static void main(String[] args) throws SocketException, UnknownHostException, IOException {
      DatagramSocket socket = new DatagramSocket(5001, InetAddress.getByName("255.255.255.255"));
      socket.setBroadcast(true);
      System.out.println("Listen on " + socket.getLocalAddress() + " from " + socket.getInetAddress() + " port " + socket.getBroadcast());
      byte[] buf = new byte[512];
      DatagramPacket packet = new DatagramPacket(buf, buf.length);
      while (true) {
        System.out.println("Waiting for data");
        socket.receive(packet);
        System.out.println("Data received");
      }
    }
  }
  </code></pre>
  
  <p>It does not work anymore. It prints out <code>Waiting for data</code> and never continue. tcpdump shows me, that UDP broadcast packets come. What am I doing wrong? Thank you much.</p>