From 1305d223fafc79be7fad07aee1f4348b2eaeaae5 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 23 Nov 2024 13:12:29 -0500 Subject: rmulticast: use DatagramChannel --- src/main/java/derms/net/Net.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/derms/net/Net.java (limited to 'src/main/java/derms/net/Net.java') diff --git a/src/main/java/derms/net/Net.java b/src/main/java/derms/net/Net.java new file mode 100644 index 0000000..f2eb1fd --- /dev/null +++ b/src/main/java/derms/net/Net.java @@ -0,0 +1,19 @@ +package derms.net; + +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; +import java.util.NoSuchElementException; + +public class Net { + /** Return the first non-loopback multicast interface in the system, or throw exception if no such interface exists. */ + public static NetworkInterface getMulticastInterface() throws SocketException, NoSuchElementException { + Enumeration ifss = NetworkInterface.getNetworkInterfaces(); + while (ifss.hasMoreElements()) { + NetworkInterface ifs = ifss.nextElement(); + if (ifs.supportsMulticast() && !ifs.isLoopback() && ifs.isUp()) + return ifs; + } + throw new NoSuchElementException("no multicast interface available"); + } +} -- cgit v1.2.3