diff --git a/examples/src/UdpMulticastHttpExamples/MulticastReceiver.java b/examples/src/UdpMulticastHttpExamples/MulticastReceiver.java index 9caf2d4d054347b3d0cea3ebceaf1ea2eba0a79e..69e106fe62d0720f15db5a597c3d610b0cca1f48 100644 --- a/examples/src/UdpMulticastHttpExamples/MulticastReceiver.java +++ b/examples/src/UdpMulticastHttpExamples/MulticastReceiver.java @@ -20,7 +20,7 @@ public class MulticastReceiver { /** Time to live: how many router-decrement levels can be crossed */ public static final int TTL = 10; - final private static boolean infiniteReadLoop = true; + final private static boolean infiniteReadLoop = false; public static void main(String[] args) { @@ -63,9 +63,9 @@ public class MulticastReceiver { nextChar = dis.readChar(); firstCharacters += nextChar; } - if (firstCharacters.equals("quit;")) + if (firstCharacters.contains(MulticastSender.QUIT_SENTINEL)) { - System.out.println("Received \"quit;\" sentinel"); + System.out.println("Received sentinel \"" + MulticastSender.QUIT_SENTINEL + "\""); if (!infiniteReadLoop) break; // exit out of reading loop } diff --git a/examples/src/UdpMulticastHttpExamples/MulticastSender.java b/examples/src/UdpMulticastHttpExamples/MulticastSender.java index 694f20b3112d57c0cc9ec518418b49a45e5913b4..7b8a11198d4a017374f2250f9dd2bcd8052c96f0 100644 --- a/examples/src/UdpMulticastHttpExamples/MulticastSender.java +++ b/examples/src/UdpMulticastHttpExamples/MulticastSender.java @@ -13,10 +13,16 @@ import java.net.*; */ public class MulticastSender { + // reserved range for all IPv4 multicast: 224.0.0.0 through 239.255.255.255 + // https://en.wikipedia.org/wiki/Multicast_address + // https://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml + public static final String MULTICAST_ADDRESS = "239.1.2.15"; // within reserved multicast address range public static final int DESTINATION_PORT = 1718; /** Time to live: how many router-decrement levels can be crossed */ - public static final int TTL = 10; + public static final int TTL = 10; + + public static final String QUIT_SENTINEL = "QUIT QUIT QUIT!"; @SuppressWarnings("SleepWhileInLoop") public static void main(String[] args) @@ -60,7 +66,7 @@ public class MulticastSender { dos.writeFloat(17.0f); // arbitrary data, needs Java or byte-alignment to read dos.writeFloat(23.0f); // arbitrary data, needs Java or byte-alignment to read } - else dos.writeChars("quit;"); // note string must include ; semicolon as termination sentinel + else dos.writeChars(QUIT_SENTINEL + ";"); // note string must include ; semicolon as termination sentinel byte[] buffer = baos.toByteArray(); DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);