From 3b9fc505358b48bbf9b6ff5c10d9629b5e64e77c Mon Sep 17 00:00:00 2001
From: bkii <bkii@10.0.0.123>
Date: Wed, 11 Sep 2019 15:47:30 -0700
Subject: [PATCH] first try

---
 .../BRE_KNO_MCC_PC1_MCAST_PduReceiver.java    |  18 +-
 .../BRE_KNO_MCC_PC2_Controller.java           |  70 +++++++
 .../BRE_KNO_MCC_PC2_MCAST_MessageList.java    |  18 --
 .../BRE_KNO_MCC_PC2_MCAST_PduReceiver.java    |  82 --------
 ...BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java | 124 ++++++++++++
 ... BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.java} |  10 +-
 ..._KNO_MCC_PC2_PC3_UNICAST_PduReceiver.java} |   6 +-
 ...BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.java | 113 +++++++++++
 .../BRE_KNO_MCC_PC2_UNICAST_MessageList.java  |  18 --
 .../BRE_KNO_MCC_PC2_UNICAST_PduSender.java    | 178 ------------------
 ...E_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java |  82 ++++++++
 ...RE_KNO_MCC_PC3_PC2_UNICAST_PduSender.java} |  10 +-
 .../BRE_KNO_MCC_PC3_UNICAST_PduReceiver.java  |  80 --------
 13 files changed, 412 insertions(+), 397 deletions(-)
 create mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java
 delete mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_MessageList.java
 delete mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduReceiver.java
 create mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
 rename assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/{BRE_KNO_MCC_PC2_MCAST_PduSender.java => BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.java} (91%)
 rename assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/{BRE_KNO_MCC_PC2_UNICAST_PduReceiver.java => BRE_KNO_MCC_PC2_PC3_UNICAST_PduReceiver.java} (95%)
 create mode 100755 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.java
 delete mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_MessageList.java
 delete mode 100755 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduSender.java
 create mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java
 rename assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/{BRE_KNO_MCC_PC3_UNICAST_PduSender.java => BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender.java} (91%)
 delete mode 100644 assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduReceiver.java

diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC1_MCAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC1_MCAST_PduReceiver.java
index a07ab479d8..eeb3cf241e 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC1_MCAST_PduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC1_MCAST_PduReceiver.java
@@ -9,26 +9,28 @@ import edu.nps.moves.dis7.util.*;
 
 public class BRE_KNO_MCC_PC1_MCAST_PduReceiver
 {
-  public static final int DEFAULT_MULTICAST_PORT = BRE_KNO_MCC_PC1_MCAST_PduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = BRE_KNO_MCC_PC1_MCAST_PduSender.DEFAULT_MULTICAST_ADDRESS;
+  public static final int DEFAULT_MULTICAST_PORT = BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.DEFAULT_MULTICAST_PORT;
+  public static final String DEFAULT_MULTICAST_ADDRESS = BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.DEFAULT_MULTICAST_ADDRESS;
   public static final boolean USE_FAST_ESPDU = false;
+    
 
   public static void main(String args[])
-  {
+  {    
     PduFactory factory;
     MulticastSocket socket;
     InetAddress address;
     DatagramPacket packet;
 
     try {
-      System.out.println("Knobeloch_PduReceiver started...");
+        
+      System.out.println("BRE_KNO_MCC_PC2_MCAST_PduReceiver started...");
       if (args.length == 2) {
         socket = new MulticastSocket(Integer.parseInt(args[0]));
         address = InetAddress.getByName(args[1]);
       }
       else {
-        System.out.println("Usage:   AllPduReceiver <port> <multicast group>");
-        System.out.println("Default: AllPduReceiver " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+        System.out.println("Usage:   BRE_KNO_MCC_PC2_MCAST_PduReceiver <port> <multicast group>");
+        System.out.println("Default: BRE_KNO_MCC_PC2_MCAST_PduReceiver " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
         socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
         address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
       }
@@ -70,11 +72,11 @@ public class BRE_KNO_MCC_PC1_MCAST_PduReceiver
       }
     }
     catch (IOException e) {
-      System.out.println("Problem with BRE_KNO_MCC_PC1_MCAST_PduReceiver, see exception trace:");
+      System.out.println("Problem with BRE_KNO_MCC_PC2_MCAST_PduReceiver, see exception trace:");
       System.out.println(e);
     }
     finally {
-      System.out.println("BRE_KNO_MCC_PC1_MCAST_PduReceiver complete.");
+      System.out.println("BRE_KNO_MCC_PC2_MCAST_PduReceiver complete.");
     }
   }
 }
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java
new file mode 100644
index 0000000000..26236f9d39
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java
@@ -0,0 +1,70 @@
+package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
+
+import edu.nps.moves.dis7.Pdu;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class BRE_KNO_MCC_PC2_Controller {
+    
+    static boolean keepRunningMainThread = false;
+    static BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver pc2_pc1_receiver;
+    static BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender pc2_pc3_sender;
+    
+    static InetAddress mcastIPPC1;
+    static InetAddress mcastIPPC3;
+    static int portPC1;
+    static int portPC3;
+    
+    public void main(String[] args) throws UnknownHostException {
+        
+        mcastIPPC1 = InetAddress.getByName("239.1.2.3"); 
+        portPC1 = 2342;  
+        
+        mcastIPPC3 = InetAddress.getByName("239.1.2.3"); 
+        portPC3 = 2343;
+        
+        
+        pc2_pc1_receiver = new BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver();
+        pc2_pc1_receiver.resetMcastMessagesToSend();
+        pc2_pc1_receiver.resetSavedMCASTMessagesList();
+        pc2_pc1_receiver.setKeepRunning(true); //use this to terminate thread instead of killing it by hard
+        pc2_pc1_receiver.run(mcastIPPC1, portPC1);
+        
+        
+        pc2_pc3_sender = new BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender();
+        
+
+        //start main thread
+        keepRunningMainThread = true;
+        run();
+    }   
+    
+    
+    public static void run() {
+    
+        while (keepRunningMainThread){
+            
+            List<Pdu> tempSet = pc2_pc1_receiver.getMCASTMessagesToSend();            
+            if (tempSet != null && !tempSet.isEmpty() )
+            {
+                pc2_pc3_sender.setKeepRunning(true);
+                pc2_pc3_sender.setListToSend(tempSet);
+                
+                if(pc2_pc3_sender.isRunning()){
+                    
+                }                
+            }
+            else
+            {
+                try {
+                    Thread.sleep(2000);
+                } catch (InterruptedException ex) {
+                    Logger.getLogger(BRE_KNO_MCC_PC2_Controller.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_MessageList.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_MessageList.java
deleted file mode 100644
index c323c0aaf2..0000000000
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_MessageList.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
-
-import java.util.HashSet;
-
-
-public class BRE_KNO_MCC_PC2_MCAST_MessageList {
-    
-    HashSet<String> savedMCASTMessages = new HashSet();
-    
-    public void addMassage(String str){
-        savedMCASTMessages.add(str);
-    }
-    
-    public HashSet<String> getSavedMCASTMessages(){
-        HashSet<String> temp = new HashSet(savedMCASTMessages);
-        return temp;
-    }
-}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduReceiver.java
deleted file mode 100644
index e392871b18..0000000000
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduReceiver.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
-
-import java.net.*;
-import java.io.*;
-
-import edu.nps.moves.dis7.*;
-import edu.nps.moves.dis7.enumerations.*;
-import edu.nps.moves.dis7.util.*;
-
-public class BRE_KNO_MCC_PC2_MCAST_PduReceiver
-{
-  public static final int DEFAULT_MULTICAST_PORT = BRE_KNO_MCC_PC2_MCAST_PduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = BRE_KNO_MCC_PC2_MCAST_PduSender.DEFAULT_MULTICAST_ADDRESS;
-  public static final boolean USE_FAST_ESPDU = false;
-    
-
-  public static void main(String args[])
-  {    
-    PduFactory factory;
-    MulticastSocket socket;
-    InetAddress address;
-    DatagramPacket packet;
-
-    try {
-        
-      System.out.println("BRE_KNO_MCC_PC2_MCAST_PduReceiver started...");
-      if (args.length == 2) {
-        socket = new MulticastSocket(Integer.parseInt(args[0]));
-        address = InetAddress.getByName(args[1]);
-      }
-      else {
-        System.out.println("Usage:   BRE_KNO_MCC_PC2_MCAST_PduReceiver <port> <multicast group>");
-        System.out.println("Default: BRE_KNO_MCC_PC2_MCAST_PduReceiver " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-        socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-        address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-      }
-      socket.joinGroup(address);
-
-      factory = new PduFactory();
-
-      while (true) // Loop infinitely, receiving datagrams
-      {
-        byte buffer[] = new byte[1500]; // typical MTU size
-
-        packet = new DatagramPacket(buffer, buffer.length); // reset
-
-        socket.receive(packet);
-
-        Pdu pdu = factory.createPdu(packet.getData());
-        if (pdu != null) {
-          DISPDUType currentPduType = pdu.getPduType(); //short  currentPduType = pdu.getPduType();
-          String currentPduTypeName = pdu.getClass().getName();
-          DISProtocolFamily currentProtocolFamilyID = pdu.getProtocolFamily(); //short  currentProtocolFamilyID = pdu.getProtocolFamily();
-          //String currentPduFamilyName = pdu.getClass().getSuperclass().getSimpleName();
-
-          StringBuilder message = new StringBuilder();
-          message.append("received DIS PDU ");
-          if (currentPduType.getValue() < 10)
-            message.append(" ");
-          message.append(currentPduType.getValue());
-          String currentPduTypePadded     = String.format("%-34s", currentPduType); // - indicates right padding of whitespace
-          message.append(" " ).append(currentPduTypePadded);
-          String currentPduTypeNamePadded = String.format("%-49s", currentPduTypeName); // - indicates right padding of whitespace
-          message.append(" of type ").append(currentPduTypeNamePadded); // package.class name
-          message.append(" (protocolFamily ").append(currentProtocolFamilyID);
-//        message.append(" ").append(currentPduFamilyName); // class name is also available
-         message.append(")");
-          System.out.println(message.toString());
-        }
-        else
-          System.out.println("received packet but pdu is null, packet.getData().length=" + packet.getData().length + ", error...");
-      }
-    }
-    catch (IOException e) {
-      System.out.println("Problem with BRE_KNO_MCC_PC2_MCAST_PduReceiver, see exception trace:");
-      System.out.println(e);
-    }
-    finally {
-      System.out.println("BRE_KNO_MCC_PC2_MCAST_PduReceiver complete.");
-    }
-  }
-}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
new file mode 100644
index 0000000000..9c45727d38
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
@@ -0,0 +1,124 @@
+package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
+
+import com.sun.corba.se.impl.orbutil.concurrent.Mutex;
+import java.net.*;
+import java.io.*;
+
+import edu.nps.moves.dis7.*;
+import edu.nps.moves.dis7.enumerations.*;
+import edu.nps.moves.dis7.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver {
+
+    public static final boolean USE_FAST_ESPDU = false;
+    static List<Integer> savedMCASTMessages = new ArrayList();
+    static List<Pdu> mcastMessagesToSend = new ArrayList();
+    static Mutex mutex = new Mutex();
+    static boolean keepRunning = false;
+    static boolean isRunning = false;
+    
+    public static void run(InetAddress addr, int port) {
+        PduFactory factory;
+        MulticastSocket socket;
+        InetAddress address;
+        DatagramPacket packet;
+
+        try {
+            isRunning = true;
+            System.out.println("BRE_KNO_MCC_PC1_MCAST_PduReceiver started...");
+            address = addr;
+            socket = new MulticastSocket(port);
+            socket.joinGroup(address);
+
+            factory = new PduFactory();
+
+            while (keepRunning)
+            {
+                byte buffer[] = new byte[1500];
+                packet = new DatagramPacket(buffer, buffer.length);
+
+                socket.receive(packet);
+
+                Pdu pdu = factory.createPdu(packet.getData());
+                if (pdu != null && (pdu.getPduType() == DISPDUType.COMMENT)) {
+                    
+                    if (!savedMCASTMessages.contains(pdu.getTimestamp()))
+                    {
+                        System.out.println("BRE_KNO_MCC_PC1_MCAST received Massage.");
+                        savedMCASTMessages.add(pdu.getTimestamp());
+                        
+                        try {
+                            mutex.acquire();
+                            mcastMessagesToSend.add(pdu);
+                            mutex.release();
+                        
+                            System.out.println("Added to SendList and saved in archiv."); 
+                        } catch (InterruptedException ex) {
+                            Logger.getLogger(BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+                        }                       
+                    }
+                    else
+                    {
+                        System.out.println("BRE_KNO_MCC_PC1_MCAST received Massage. Is already in list. Nothing added to SendList.");                         
+                    }                
+                    
+                } else {
+                    System.out.println("received packet but pdu is null or not a PDU from type COMMENT");
+                }
+            }
+        } catch (IOException e) {
+            System.out.println("Problem with BRE_KNO_MCC_PC1_MCAST_PduReceiver, see exception trace:");
+            System.out.println(e);
+        } finally {
+            System.out.println("BRE_KNO_MCC_PC1_MCAST_PduReceiver complete.");
+        }
+        
+        isRunning = false;
+    }
+
+    public boolean isRunning(){
+        return isRunning;                
+    }
+    
+    public void setKeepRunning(boolean k)
+    {
+        keepRunning = k;
+    }
+    
+    public void resetSavedMCASTMessagesList(){
+        try {
+            mutex.acquire();
+            savedMCASTMessages.clear();
+            mutex.release();
+        } catch (InterruptedException ex) {
+            Logger.getLogger(BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        }
+    }
+    
+    public void resetMcastMessagesToSend(){
+        try {
+            mutex.acquire();
+            mcastMessagesToSend.clear();
+            mutex.release();
+        } catch (InterruptedException ex) {
+            Logger.getLogger(BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        }
+    }
+
+    public List<Pdu> getMCASTMessagesToSend(){
+        List<Pdu> temp = null;
+        try {
+            mutex.acquire();
+            temp = new ArrayList(mcastMessagesToSend);
+            mutex.release();            
+        } catch (InterruptedException ex) {
+            Logger.getLogger(BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        
+        return temp;
+    }
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.java
similarity index 91%
rename from assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduSender.java
rename to assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.java
index e7b704fe6e..91cc80158d 100755
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_MCAST_PduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.java
@@ -17,7 +17,7 @@ import java.util.logging.Logger;
  * @author DMcG
  * @version $Id:$
  */
-public class BRE_KNO_MCC_PC2_MCAST_PduSender
+public class BRE_KNO_MCC_PC2_PC1_MCAST_PduSender
 {
     /** Default multicast group address we send on. */
     public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
@@ -28,7 +28,7 @@ public class BRE_KNO_MCC_PC2_MCAST_PduSender
     private int port;
     InetAddress multicastAddress;
 
-    public BRE_KNO_MCC_PC2_MCAST_PduSender(int port, String multicast) {
+    public BRE_KNO_MCC_PC2_PC1_MCAST_PduSender(int port, String multicast) {
         try
 		{
             this.port = port;
@@ -69,7 +69,7 @@ public class BRE_KNO_MCC_PC2_MCAST_PduSender
                 try {
                     aPdu.marshal(dos);
                 } catch (Exception ex) {
-                    Logger.getLogger(BRE_KNO_MCC_PC2_MCAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+                    Logger.getLogger(BRE_KNO_MCC_PC2_PC1_MCAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
                 }
 
                 buffer = baos.toByteArray();
@@ -95,14 +95,14 @@ public class BRE_KNO_MCC_PC2_MCAST_PduSender
     {
         if (args.length == 2)
         {
-            BRE_KNO_MCC_PC2_MCAST_PduSender sender = new BRE_KNO_MCC_PC2_MCAST_PduSender(Integer.parseInt(args[0]), args[1]);
+            BRE_KNO_MCC_PC2_PC1_MCAST_PduSender sender = new BRE_KNO_MCC_PC2_PC1_MCAST_PduSender(Integer.parseInt(args[0]), args[1]);
             sender.run(5);
         } 
         else
         {
             System.out.println("Usage:   BRE_KNO_MCC_PC2_MCAST_PduSender <port> <multicast group>");
             System.out.println("Default: BRE_KNO_MCC_PC2_MCAST_PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-            BRE_KNO_MCC_PC2_MCAST_PduSender sender = new  BRE_KNO_MCC_PC2_MCAST_PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+            BRE_KNO_MCC_PC2_PC1_MCAST_PduSender sender = new  BRE_KNO_MCC_PC2_PC1_MCAST_PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
             sender.run(5);
         }
         System.out.println("BRE_KNO_MCC_PC2_MCAST_PduSender complete.");
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduReceiver.java
similarity index 95%
rename from assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduReceiver.java
rename to assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduReceiver.java
index ddd25ac2dd..6ea4fbc68c 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduReceiver.java
@@ -8,10 +8,10 @@ import edu.nps.moves.dis7.*;
 import edu.nps.moves.dis7.enumerations.*;
 import edu.nps.moves.dis7.util.*;
 
-public class BRE_KNO_MCC_PC2_UNICAST_PduReceiver
+public class BRE_KNO_MCC_PC2_PC3_UNICAST_PduReceiver
 {
-  public static final int DEFAULT_MULTICAST_PORT = BRE_KNO_MCC_PC2_UNICAST_PduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = BRE_KNO_MCC_PC2_UNICAST_PduSender.DEFAULT_MULTICAST_ADDRESS;
+  public static final int DEFAULT_MULTICAST_PORT = BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.DEFAULT_MULTICAST_PORT;
+  public static final String DEFAULT_MULTICAST_ADDRESS = BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.DEFAULT_MULTICAST_ADDRESS;
   public static final boolean USE_FAST_ESPDU = false;
 
   public static void main(String args[])
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.java
new file mode 100755
index 0000000000..aec29bf162
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.java
@@ -0,0 +1,113 @@
+package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
+
+import com.sun.corba.se.impl.orbutil.concurrent.Mutex;
+import java.util.*;
+
+import edu.nps.moves.dis7.*;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender
+{
+
+    static Mutex mutex = new Mutex();
+    static List<Pdu> messagesToSend = new ArrayList();
+    static boolean keepRunning = false;
+    static boolean isRunning = false;
+    
+    static InetAddress pc3IP;
+    static int portPC3;
+
+
+    public static void run(InetAddress address, int port)
+    {
+        isRunning = true;
+        
+        pc3IP = address;
+        portPC3 = port;
+
+        while (keepRunning)
+        {
+            try
+            {
+                mutex.acquire();
+                if (!messagesToSend.isEmpty())
+                {
+                    Pdu tempPdu = messagesToSend.get(0);
+                    messagesToSend.remove(0);
+                    mutex.release();
+
+                    //Sending via UNICAST
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                    DataOutputStream dos = new DataOutputStream(baos);
+                    byte[] buffer;
+                    
+                    try
+                    {
+                        tempPdu.marshal(dos);
+                    }
+                    catch (Exception ex)
+                    {
+                        Logger.getLogger(BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+                    }
+                    buffer = baos.toByteArray();
+                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length, pc3IP, portPC3);
+                    
+                    try
+                    {
+                        DatagramSocket socket = new DatagramSocket(portPC3, pc3IP);
+                        socket.send(packet);
+                    }
+                    catch (IOException ex)
+                    {
+                        Logger.getLogger(BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+                    }                  
+                    
+                }
+                else
+                {
+                    mutex.release();
+                    keepRunning = false;
+                }
+            }
+            catch (InterruptedException ex)
+            {
+                Logger.getLogger(BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }
+    }
+
+    public boolean isRunning()
+    {
+        return isRunning;
+    }
+
+    public void setKeepRunning(boolean k)
+    {
+        keepRunning = k;
+    }
+
+    public void setListToSend(List<Pdu> pduSetToSend)
+    {
+        try
+        {
+            mutex.acquire();
+            while (!pduSetToSend.isEmpty())
+            {
+                messagesToSend.add(pduSetToSend.get(0));
+                pduSetToSend.remove(0);
+            }
+            mutex.release();
+        }
+        catch (InterruptedException ex)
+        {
+            Logger.getLogger(BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_MessageList.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_MessageList.java
deleted file mode 100644
index 7893cbe8c5..0000000000
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_MessageList.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
-
-import java.util.HashSet;
-
-
-public class BRE_KNO_MCC_PC2_UNICAST_MessageList {
-        
-    HashSet<String> savedUNICASTMessages = new HashSet();
-    
-    public void addMassage(String str){
-        savedUNICASTMessages.add(str);
-    }
-    
-    public HashSet<String> getSavedUNICASTMessages(){
-        HashSet<String> temp = new HashSet(savedUNICASTMessages);
-        return temp;
-    }
-}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduSender.java
deleted file mode 100755
index 1b57b522bc..0000000000
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_UNICAST_PduSender.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis7.*;
-import edu.nps.moves.dis7.enumerations.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * This is an example that sends many/most types of PDUs. Useful for testing standards
- * compliance or getting a full set of PDUs. It also writes the generated PDUs to an XML file.
- * Adapted from OpenDIS library example package edu.nps.moves.examples
- *
- * @author DMcG
- * @version $Id:$
- */
-public class BRE_KNO_MCC_PC2_UNICAST_PduSender
-{
-    /** Default multicast group address we send on. */
-    public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
-	
-    /** Default multicast port used, matches Wireshark DIS capture default */
-    public static final int    DEFAULT_MULTICAST_PORT    = 2343;
-	
-    private int port;
-    InetAddress multicastAddress;
-
-    public BRE_KNO_MCC_PC2_UNICAST_PduSender(int port, String multicast) {
-        try
-		{
-            this.port = port;
-            multicastAddress = InetAddress.getByName(multicast);
-            if (!multicastAddress.isMulticastAddress())
-			{
-                System.out.println("Not a multicast address: " + multicast);
-            }
-        } 
-		catch (UnknownHostException e) {
-            System.out.println("Unable to open socket: " + e);
-        }
-    }
-
-    public void run(int numbOfPDUS)
-    {
-	System.out.println("BRE_KNO_MCC_PC2_UNICAST_PduSender started...");
-        System.out.println("Generate PDUs and note issues, if any...");
-        
-        List<Pdu> generatedPdusList = createPDU(numbOfPDUS);
-          
-        // Send the PDUs we created
-        System.out.println("Send the " + generatedPdusList.size() + " PDUs we created...");
-
-        try
-        {
-            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-            socket.joinGroup(localMulticastAddress);
-
-            for (int idx = 0; idx < generatedPdusList.size(); idx++)
-            {
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                DataOutputStream dos = new DataOutputStream(baos);
-                byte[] buffer;
-
-                Pdu aPdu = generatedPdusList.get(idx);
-                try {
-                    aPdu.marshal(dos);
-                } catch (Exception ex) {
-                    Logger.getLogger(BRE_KNO_MCC_PC2_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
-                }
-
-                buffer = baos.toByteArray();
-                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
-                socket.send(packet);
-                try {
-                    Thread.sleep(100L);
-                } catch (InterruptedException ex) {
-                }
-                String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue());
-                String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace
-                System.out.print  ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded );
-                System.out.println(" of type " + aPdu.getClass().getName());
-            }
-        }            
-        catch (IOException e)
-	{
-            System.out.println(e);
-        }
-    }
-
-    public static void main(String args[])
-    {
-        if (args.length == 2)
-        {
-            BRE_KNO_MCC_PC2_UNICAST_PduSender sender = new BRE_KNO_MCC_PC2_UNICAST_PduSender(Integer.parseInt(args[0]), args[1]);
-            sender.run(5);
-        } 
-        else
-        {
-            System.out.println("Usage:   BRE_KNO_MCC_PC2_UNICAST_PduSender <port> <multicast group>");
-            System.out.println("Default: BRE_KNO_MCC_PC2_UNICAST_PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-            BRE_KNO_MCC_PC2_UNICAST_PduSender sender = new  BRE_KNO_MCC_PC2_UNICAST_PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
-            sender.run(5);
-        }
-        System.out.println("BRE_KNO_MCC_PC2_UNICAST_PduSender complete.");
-    }
-    
-    private List<Pdu> createPDU(int numbOfPDUs)
-    {
-        List<Pdu> list = new ArrayList<>();
-        List<Short> entityIDs = new ArrayList<>();        
-        Random r = new Random();
-        
-        //generate Entity ID (no douplications)        
-        for (int i = 0; i < numbOfPDUs; i++)
-        {
-            short temp = (short) r.nextInt();        
-            while (entityIDs.contains(temp))
-            {
-                temp = (short) r.nextInt();
-            }
-            entityIDs.add(temp);
-        }
-        
-        //
-        for (int i = 0; i < numbOfPDUs; i++){
-            EntityStatePdu myPdu = new EntityStatePdu();
-            
-            //ID
-            EntityID tempID = new EntityID();
-            tempID.setEntityID(entityIDs.get(i));
-            myPdu.setEntityID(tempID);
-            
-            //Enemy or Friend
-            myPdu.setForceId(ForceID.FRIENDLY);
-            
-            //location
-            Vector3Double tempLoc = new Vector3Double();
-            tempLoc.setX(r.nextInt(1000) + r.nextDouble());
-            tempLoc.setY(r.nextInt(1000) + r.nextDouble());
-            tempLoc.setZ(r.nextInt(1000) + r.nextDouble());
-            
-            myPdu.setEntityLocation(tempLoc);
-            
-            //orientation
-            EulerAngles tempOri = new EulerAngles();
-            tempOri.setPhi(r.nextFloat());
-            tempOri.setPsi(r.nextFloat());
-            tempOri.setTheta(r.nextFloat());
-            
-            myPdu.setEntityOrientation(tempOri);
-            
-            
-            //velocity
-            Vector3Double tempVel = new Vector3Double();
-            tempVel.setX(r.nextDouble());
-            tempVel.setY(r.nextDouble());
-            tempVel.setZ(r.nextDouble());
-            
-            myPdu.setEntityLocation(tempVel);
-            
-            
-//            Category? Country? Domain?...
-//            EntityType tempType = new EntityType();
-//            tempType.set
-//            myPdu.setEntityType(tempType)
-
-            list.add(myPdu);
-        }
-        
-               
-        return list;
-    }
-}
-
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java
new file mode 100644
index 0000000000..a01d9a9738
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java
@@ -0,0 +1,82 @@
+package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
+
+import com.sun.corba.se.impl.orbutil.concurrent.Mutex;
+import java.net.*;
+import java.io.*;
+
+import edu.nps.moves.dis7.*;
+import edu.nps.moves.dis7.util.PduFactory;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver
+{
+    static Mutex mutex = new Mutex();
+    static List<Pdu> messagesToSend = new ArrayList();
+    static boolean keepRunning = false;
+    static boolean isRunning = false;
+    
+    static InetAddress pc3IP;
+    static int portPC3;
+
+
+    public static void run()
+    {
+        isRunning = true;
+        byte[] buffer = new byte[65507];
+                
+        try      
+        {
+            pc3IP = InetAddress.getByName("127.0.0.1");
+            portPC3 = 2343;
+        }
+        catch (UnknownHostException ex)
+        {
+            Logger.getLogger(BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        }
+        
+        
+        try
+        {
+            DatagramSocket clientSocket = new DatagramSocket(portPC3);
+            while (keepRunning)
+            {
+                DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length);
+                
+                try
+                {
+                    clientSocket.receive(datagramPacket);  
+                    PduFactory factory = new PduFactory();
+                    Pdu tempPdu = factory.createPdu(datagramPacket.getData());
+                    StringBuilder message = new StringBuilder();
+                    message.append("Pdu type: ");
+                    message.append(tempPdu.getPduType());
+                    message.append(" TimeStamp: ");
+                    message.append(tempPdu.getTimestamp());
+                    
+                    System.out.println(message);
+                }
+                catch (IOException ex)
+                {
+                    Logger.getLogger(BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+                }
+                
+                
+            }
+        
+        
+        }
+        catch (SocketException ex)
+        {
+            Logger.getLogger(BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        }
+            
+
+                
+                
+                
+                
+    }
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender.java
similarity index 91%
rename from assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduSender.java
rename to assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender.java
index 34d19cefd8..c444e2fd7c 100755
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduSender.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender.java
@@ -17,7 +17,7 @@ import java.util.logging.Logger;
  * @author DMcG
  * @version $Id:$
  */
-public class BRE_KNO_MCC_PC3_UNICAST_PduSender
+public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender
 {
     /** Default multicast group address we send on. */
     public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
@@ -28,7 +28,7 @@ public class BRE_KNO_MCC_PC3_UNICAST_PduSender
     private int port;
     InetAddress multicastAddress;
 
-    public BRE_KNO_MCC_PC3_UNICAST_PduSender(int port, String multicast) {
+    public BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender(int port, String multicast) {
         try
 		{
             this.port = port;
@@ -69,7 +69,7 @@ public class BRE_KNO_MCC_PC3_UNICAST_PduSender
                 try {
                     aPdu.marshal(dos);
                 } catch (Exception ex) {
-                    Logger.getLogger(BRE_KNO_MCC_PC3_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+                    Logger.getLogger(BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
                 }
 
                 buffer = baos.toByteArray();
@@ -95,14 +95,14 @@ public class BRE_KNO_MCC_PC3_UNICAST_PduSender
     {
         if (args.length == 2)
         {
-            BRE_KNO_MCC_PC3_UNICAST_PduSender sender = new BRE_KNO_MCC_PC3_UNICAST_PduSender(Integer.parseInt(args[0]), args[1]);
+            BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender sender = new BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender(Integer.parseInt(args[0]), args[1]);
             sender.run(5);
         } 
         else
         {
             System.out.println("Usage:   BRE_KNO_MCC_PC3_UNICAST_PduSender <port> <multicast group>");
             System.out.println("Default: BRE_KNO_MCC_PC3_UNICAST_PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-            BRE_KNO_MCC_PC3_UNICAST_PduSender sender = new  BRE_KNO_MCC_PC3_UNICAST_PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+            BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender sender = new  BRE_KNO_MCC_PC3_PC2_UNICAST_PduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
             sender.run(5);
         }
         System.out.println("BRE_KNO_MCC_PC3_UNICAST_PduSender complete.");
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduReceiver.java
deleted file mode 100644
index 21cdae780e..0000000000
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_UNICAST_PduReceiver.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
-
-import java.net.*;
-import java.io.*;
-
-import edu.nps.moves.dis7.*;
-import edu.nps.moves.dis7.enumerations.*;
-import edu.nps.moves.dis7.util.*;
-
-public class BRE_KNO_MCC_PC3_UNICAST_PduReceiver
-{
-  public static final int DEFAULT_MULTICAST_PORT = BRE_KNO_MCC_PC3_UNICAST_PduSender.DEFAULT_MULTICAST_PORT;
-  public static final String DEFAULT_MULTICAST_ADDRESS = BRE_KNO_MCC_PC3_UNICAST_PduSender.DEFAULT_MULTICAST_ADDRESS;
-  public static final boolean USE_FAST_ESPDU = false;
-
-  public static void main(String args[])
-  {
-    PduFactory factory;
-    MulticastSocket socket;
-    InetAddress address;
-    DatagramPacket packet;
-
-    try {
-      System.out.println("BRE_KNO_MCC_PC3_UNICAST_PduReceiver started...");
-      if (args.length == 2) {
-        socket = new MulticastSocket(Integer.parseInt(args[0]));
-        address = InetAddress.getByName(args[1]);
-      }
-      else {
-        System.out.println("Usage:   BRE_KNO_MCC_PC3_UNICAST_PduReceiver <port> <multicast group>");
-        System.out.println("Default: BRE_KNO_MCC_PC3_UNICAST_PduReceiver " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
-        socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
-        address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
-      }
-      socket.joinGroup(address);
-
-      factory = new PduFactory();
-
-      while (true) // Loop infinitely, receiving datagrams
-      {
-        byte buffer[] = new byte[1500]; // typical MTU size
-
-        packet = new DatagramPacket(buffer, buffer.length); // reset
-
-        socket.receive(packet);
-
-        Pdu pdu = factory.createPdu(packet.getData());
-        if (pdu != null) {
-          DISPDUType currentPduType = pdu.getPduType(); //short  currentPduType = pdu.getPduType();
-          String currentPduTypeName = pdu.getClass().getName();
-          DISProtocolFamily currentProtocolFamilyID = pdu.getProtocolFamily(); //short  currentProtocolFamilyID = pdu.getProtocolFamily();
-          //String currentPduFamilyName = pdu.getClass().getSuperclass().getSimpleName();
-
-          StringBuilder message = new StringBuilder();
-          message.append("received DIS PDU ");
-          if (currentPduType.getValue() < 10)
-            message.append(" ");
-          message.append(currentPduType.getValue());
-          String currentPduTypePadded     = String.format("%-34s", currentPduType); // - indicates right padding of whitespace
-          message.append(" " ).append(currentPduTypePadded);
-          String currentPduTypeNamePadded = String.format("%-49s", currentPduTypeName); // - indicates right padding of whitespace
-          message.append(" of type ").append(currentPduTypeNamePadded); // package.class name
-          message.append(" (protocolFamily ").append(currentProtocolFamilyID);
-//        message.append(" ").append(currentPduFamilyName); // class name is also available
-         message.append(")");
-          System.out.println(message.toString());
-        }
-        else
-          System.out.println("received packet but pdu is null, packet.getData().length=" + packet.getData().length + ", error...");
-      }
-    }
-    catch (IOException e) {
-      System.out.println("Problem with BRE_KNO_MCC_PC3_UNICAST_PduReceiver, see exception trace:");
-      System.out.println(e);
-    }
-    finally {
-      System.out.println("BRE_KNO_MCC_PC3_UNICAST_PduReceiver complete.");
-    }
-  }
-}
-- 
GitLab