From fde0d4344bd971d2c1633e1d6046b786c7882436 Mon Sep 17 00:00:00 2001 From: Yohan Simard Date: Mon, 7 Dec 2020 14:21:55 +0100 Subject: [PATCH] Add a listLocalAddresses and move listBroadcastAddresses to NetUtil --- .../clavardator/network/NetDiscoverer.java | 23 +--------- .../fr/insa/clavardator/network/NetUtil.java | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 src/main/java/fr/insa/clavardator/network/NetUtil.java diff --git a/src/main/java/fr/insa/clavardator/network/NetDiscoverer.java b/src/main/java/fr/insa/clavardator/network/NetDiscoverer.java index 22c8a11..a0efd1c 100644 --- a/src/main/java/fr/insa/clavardator/network/NetDiscoverer.java +++ b/src/main/java/fr/insa/clavardator/network/NetDiscoverer.java @@ -5,10 +5,6 @@ import org.jetbrains.annotations.Nullable; import java.io.IOException; import java.net.*; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; -import java.util.Objects; public class NetDiscoverer { private static final short DISCOVERY_PORT = 31593; @@ -94,7 +90,7 @@ public class NetDiscoverer { public void run() { byte[] buf = broadcastMessage.getBytes(); try { - for (InetAddress broadcastAddr : listAllBroadcastAddresses()) { + for (InetAddress broadcastAddr : NetUtil.listAllBroadcastAddresses()) { DatagramSocket broadcastSocket = new DatagramSocket(); broadcastSocket.setBroadcast(true); broadcastSocket.send(new DatagramPacket(buf, buf.length, broadcastAddr, DISCOVERY_PORT)); @@ -231,23 +227,6 @@ public class NetDiscoverer { } - static List listAllBroadcastAddresses() throws SocketException { - List broadcastList = new ArrayList<>(); - final Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); - - while (interfaces.hasMoreElements()) { - NetworkInterface networkInterface = interfaces.nextElement(); - if (!networkInterface.isLoopback() && networkInterface.isUp()) { - networkInterface.getInterfaceAddresses().stream() - .map(InterfaceAddress::getBroadcast) - .filter(Objects::nonNull) - .forEach(broadcastList::add); - } - } - return broadcastList; - } - - private interface BroadcastReceivedCallback { void onBroadcastReceived(InetAddress ipAddr, String data); } diff --git a/src/main/java/fr/insa/clavardator/network/NetUtil.java b/src/main/java/fr/insa/clavardator/network/NetUtil.java new file mode 100644 index 0000000..88fd9d8 --- /dev/null +++ b/src/main/java/fr/insa/clavardator/network/NetUtil.java @@ -0,0 +1,44 @@ +package fr.insa.clavardator.network; + +import java.net.InetAddress; +import java.net.InterfaceAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.Objects; + +public class NetUtil { + public static List listAllBroadcastAddresses() throws SocketException { + List broadcastList = new ArrayList<>(); + final Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); + + while (interfaces.hasMoreElements()) { + NetworkInterface networkInterface = interfaces.nextElement(); + if (!networkInterface.isLoopback() && networkInterface.isUp()) { + networkInterface.getInterfaceAddresses().stream() + .map(InterfaceAddress::getBroadcast) + .filter(Objects::nonNull) + .forEach(broadcastList::add); + } + } + return broadcastList; + } + + public static List listAllLocalAddresses() throws SocketException { + List localList = new ArrayList<>(); + final Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); + + while (interfaces.hasMoreElements()) { + NetworkInterface networkInterface = interfaces.nextElement(); + if (!networkInterface.isLoopback() && networkInterface.isUp()) { + networkInterface.getInterfaceAddresses().stream() + .map(InterfaceAddress::getAddress) + .filter(Objects::nonNull) + .forEach(localList::add); + } + } + return localList; + } +}