From 2cdf29592c0ef90679873c433fcede877d4998ac Mon Sep 17 00:00:00 2001
From: brutzman <brutzman@DESKTOP-2S09UKA>
Date: Tue, 13 Aug 2019 14:18:22 -0700
Subject: [PATCH] better sentinel and looping control

---
 .../UdpMulticastHttpExamples/MulticastReceiver.java    |  6 +++---
 .../src/UdpMulticastHttpExamples/MulticastSender.java  | 10 ++++++++--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/examples/src/UdpMulticastHttpExamples/MulticastReceiver.java b/examples/src/UdpMulticastHttpExamples/MulticastReceiver.java
index 9caf2d4d05..69e106fe62 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 694f20b311..7b8a11198d 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);
-- 
GitLab