Java examples for Network:Datagram Channel
A DatagramChannel-Based Multicast Client Program
import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.NetworkInterface; import java.net.StandardProtocolFamily; import java.net.StandardSocketOptions; import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; import java.nio.channels.MembershipKey; public class Main { public static void main(String[] args) { MembershipKey key = null;/* w w w . j ava 2 s. com*/ try (DatagramChannel client = DatagramChannel .open(StandardProtocolFamily.INET)) { NetworkInterface interf = NetworkInterface .getByName("test"); client.setOption(StandardSocketOptions.SO_REUSEADDR, true); client.bind(new InetSocketAddress(5555)); client.setOption(StandardSocketOptions.IP_MULTICAST_IF, interf); InetAddress group = InetAddress.getByName("127.0.0.1"); key = client.join(group, interf); System.out.println("Joined the multicast group:" + key); System.out.println("Waiting for a message from the" + " multicast group...."); ByteBuffer buffer = ByteBuffer.allocate(1048); client.receive(buffer); buffer.flip(); int limits = buffer.limit(); byte bytes[] = new byte[limits]; buffer.get(bytes, 0, limits); String msg = new String(bytes); System.out.format("Multicast Message:%s%n", msg); } catch (IOException e) { e.printStackTrace(); } finally { if (key != null) { key.drop(); } } } }