Sender :
public static void main(String argv[]) {
InetAddress mcAddress=null; /* multicast address */
int mcPort=0; /* multicast port */
int ttl=1; /* time to live */
BufferedReader stdin; /* input from keyboard */
String sendString; /* string to be sent */
byte[] sendBytes; /* bytes to be sent */
try {
/* instantiate a MulticastSocket */
MulticastSocket sock = new MulticastSocket();
/* set the time to live */
sock.setTimeToLive(ttl); // Java 1.0/1.1 use setTTL()
/* prepare to read from the keyboard input */
stdin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Begin typing (return to send," +
" ctrl-C to quit):");
while ((sendString=stdin.readLine()) != null) {
/* convert keyboard input to bytes */
sendBytes=sendString.getBytes();
/* populate the DatagramPacket */
DatagramPacket packet = new DatagramPacket(sendBytes, sendBytes.length, mcAddress, mcPort);
/* send the packet */
sock.send(packet);
}
sock.close();
} catch (IOException e) {
System.err.println(e.toString());
System.exit(1);
}
}
Reciever
try {
/* instantiate a MulticastSocket */
MulticastSocket sock = new MulticastSocket(mcPort);
/* set the address reuse option */
sock.setReuseAddress(true); // Java 1.4 and higher
/* join the multicast group */
sock.joinGroup(mcAddress);
while (!done) { /* loop forever */
/* create a new DatagramPacket with an empty buffer */
byte[] buf = new byte[MAX_LEN];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
/* wait to receive packet into the DatagramPacket instance */
sock.receive(packet);
/* output the data from the packet received */
System.out.println("Received " + packet.getLength() +
" bytes from " + packet.getAddress() + ": "
+ new String(packet.getData(),0,packet.getLength()));
}
sock.leaveGroup(mcAddress);
sock.close();
} catch (IOException e) {
System.err.println(e.toString());
System.exit(1);
}
}