diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-23 13:12:29 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-23 13:12:29 -0500 |
| commit | 1305d223fafc79be7fad07aee1f4348b2eaeaae5 (patch) | |
| tree | dcd9b2377048573fa092488a5a7612f712183753 /src/main/java/derms/net/Net.java | |
| parent | 171c58d8ffb29c08ce55d789f0cc1b593c7f5e86 (diff) | |
| download | soen423-1305d223fafc79be7fad07aee1f4348b2eaeaae5.zip | |
rmulticast: use DatagramChannel
Diffstat (limited to 'src/main/java/derms/net/Net.java')
| -rw-r--r-- | src/main/java/derms/net/Net.java | 19 |
1 files changed, 19 insertions, 0 deletions
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<NetworkInterface> 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"); + } +} |