The Java Program: MulticastSniffer.java

  1 import java.net.InetAddress;
  2 import java.net.DatagramPacket;
  3 import java.net.MulticastSocket;
  4 import java.net.SocketException;
  5 
  6 import java.io.IOException;
  7 
  8 public class MulticastSniffer {
  9 
 10   public static void main(String[] args) {
 11   
 12     InetAddress ia = null;
 13     final byte[] buffer = new byte[65509];
 14     final DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
 15     int port = 0;
 16   
 17     // read the address from the command line
 18     try {
 19        ia = InetAddress.getByName (args[0]);
 20        port = Integer.parseInt (args[1]);
 21     } catch (Exception e) {
 22        System.err.println(e);
 23        System.err.println("Usage: java MulticastSniffer MulticastAddress port");
 24        System.exit(1);
 25     }
 26   
 27     try {
 28        MulticastSocket ms = new MulticastSocket(port);
 29        ms.joinGroup(ia);
 30        while (true) {
 31           ms.receive(dp);
 32           final String s = new String(dp.getData(), 0, dp.getLength());
 33           System.out.println(s);
 34        }
 35     } catch (SocketException se) {
 36        System.err.println(se);
 37     } catch (IOException ie) {
 38        System.err.println(ie);
 39     }  
 40   }
 41 }