diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Ayres_Demchko_Homework3/AyresDemchkoMulticastReceiver.java b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Ayres_Demchko_Homework3/AyresDemchkoMulticastReceiver.java
new file mode 100644
index 0000000000000000000000000000000000000000..acb89ce19013056d01ecc5efde1bd888eeab958f
--- /dev/null
+++ b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Ayres_Demchko_Homework3/AyresDemchkoMulticastReceiver.java
@@ -0,0 +1,85 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JulySeptember.homework3.Ayres_Homework3;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+import java.net.UnknownHostException;
+/**
+ *
+ * @author kjayr
+ */
+public class AyresMulticastReceiver {
+public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    public static final int TTL = 10; 
+    
+    public static void main(String[] args) 
+    {
+        try
+        {
+        
+            // This is a java/IPv6 problem. You should also add it to the
+            // arguments used to start the app, eg -Djava.net.preferIPv4Stack=true
+            // set in the "run" section of preferences. Also, typically
+            // netbeans must be restarted after these settings.
+            // https://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            int count = 0;
+            int firstNumber = 11;
+            int secondNumber = 67;
+            int thirdNumber = 108;
+            int forkliftsAvail = 100;
+            int forkliftsServ = 0;
+            
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                
+                multicastSocket.receive(packet);
+                count++;
+                firstNumber+=1.5;
+                secondNumber+=3.5;
+                thirdNumber+=5.0; 
+                    if(count > 1){
+                        forkliftsAvail-=1;
+                        forkliftsServ+=1;
+                    }
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                //float firstNumber = dis.readInt();
+                //float secondNumber = dis.readInt();
+                //float thirdNumber = dis.readInt(); 
+                
+                System.out.println("Marine Corps Logistics Base Albany: Wilson Warehouse");
+                System.out.println("Order received: " + count + " NSN ID: " + firstNumber + " Xrow: " + secondNumber + " Yshelf: "+ thirdNumber + 
+                        " Forklifts Availble: " + forkliftsAvail + " Forklifts in Service: " +forkliftsServ);
+                System.out.println("______________________________________________________");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Ayres_Demchko_Homework3/AyresDemchkoMulticastSender.java b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Ayres_Demchko_Homework3/AyresDemchkoMulticastSender.java
new file mode 100644
index 0000000000000000000000000000000000000000..6cee1718828b4ad7d79cab2a6ed91a19794abffc
--- /dev/null
+++ b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Ayres_Demchko_Homework3/AyresDemchkoMulticastSender.java
@@ -0,0 +1,69 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JulySeptember.homework3.Ayres_Homework3;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+/**
+ *
+ * @author kjayr
+ */
+public class AyresMulticastSender {
+    
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    public static final int TTL = 10; 
+    
+    public static void main(String[] args) 
+    {
+        
+        try
+        {
+            //int ID = 27;
+            //int xrow = 5;
+            //int yshelf = 7;
+
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            
+            // Put together a message with binary content. "ByteArrayOutputStream"
+            // is a java.io utility that lets us put together an array of binary
+            // data, which we put into the UDP packet.
+            
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            DataOutputStream dos = new DataOutputStream(baos);
+            //dos.writeInt(ID);
+            //dos.writeInt(xrow);
+            //dos.writeInt(yshelf); 
+            byte[] buffer = baos.toByteArray();
+            
+            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+            
+            for(int idx = 0; idx < 100; idx++)
+            {
+               multicastSocket.send(packet);
+               Thread.sleep(1000); // Send 100, one per second
+               System.out.println("Sent multicast packet " + idx + " of 100");
+            }
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java
new file mode 100644
index 0000000000000000000000000000000000000000..090d33d844cf98aaf320cc6056fe48ee2c435e76
--- /dev/null
+++ b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Receiver.java
@@ -0,0 +1,73 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package MV3500Cohort2018JulySeptember.homework3.Furr_Frisco_Homework3;
+
+import MV3500Cohort2018JulySeptember.homework3.Furr_Frisco_Homework3.*;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+
+/**
+ *
+ * @author danielcain with credit to CDR Angelopolis
+ */
+public class FurrFriscoHw3Receiver {
+
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    public static final int DESTINATION_PORT = 1717;
+    /** How many routers can be crossed */
+    public static final int TTL = 10; 
+    
+    public static void main(String[] args) 
+    {
+        try
+        {
+
+            System.setProperty("java.net.preferIPv4Stack", "true");
+            
+            MulticastSocket multicastSocket = new MulticastSocket(DESTINATION_PORT);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);            
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            while(true)
+            {
+                byte[] packetArray = new byte[1500];
+                DatagramPacket packet = new DatagramPacket(packetArray, packetArray.length);
+                multicastSocket.receive(packet);
+                ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
+                DataInputStream dis = new DataInputStream(bais);
+                char type = dis.readChar();
+                
+//              
+                 if (type == '1') {
+                    int lngth = dis.readInt();
+                    String informationLine = "Abbott says: ";
+                    for(int i=0; i<lngth; i++) {
+                        informationLine += dis.readChar();
+                    }
+                    System.out.println(informationLine);
+                }
+                if (type == '2') {
+                    int lngth = dis.readInt();
+                    String informationLine = "Costello says: ";
+                    for(int i=0; i<lngth; i++) {
+                        informationLine += dis.readChar();
+                    }
+                    System.out.println(informationLine);
+                }
+            }   
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+        }
+    }
+}
diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef5371d8982eaac0afea420fcd36a7ae0ab0fff9
--- /dev/null
+++ b/deliverables/src/MV3500Cohort2018JulySeptember/homework3/Furr_Frisco_Homework3/FurrFriscoHw3Sender.java
@@ -0,0 +1,116 @@
+package MV3500Cohort2018JulySeptember.homework3.Furr_Frisco_Homework3;
+
+import MV3500Cohort2018JulySeptember.homework3.Furr_Frisco_Homework3.*;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.MulticastSocket;
+import java.util.ArrayList;
+import java.util.Random;
+
+/**
+ *
+ * @author danielcain with credit to CDR Angelopolis
+ */
+public class FurrFriscoHw3Sender {
+
+    public static final String MULTICAST_ADDRESS = "239.1.2.15";
+    public static final int DESTINATION_PORT = 1717;
+    /**
+     * How many routers can be crossed
+     */
+    public static final int TTL = 10;
+
+    public static void main(String[] args) {
+        try {
+
+            System.setProperty("java.net.preferIPv4Stack", "true");
+
+            MulticastSocket multicastSocket = new MulticastSocket(1718);
+            multicastSocket.setTimeToLive(TTL);
+            InetAddress multicastAddress = InetAddress.getByName(MULTICAST_ADDRESS);
+            System.out.println(multicastAddress);
+            // Join group useful on receiving side
+            System.out.println(multicastAddress);
+            // Join group useful on receiving side
+            multicastSocket.joinGroup(multicastAddress);
+            // You can join multiple groups here
+            // Put together a message with binary content. "ByteArrayOutputStream"
+            // is a java.io utility that lets us put together an array of binary
+            // data, which we put into the UDP packet.
+
+            ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+            DataOutputStream dos = new DataOutputStream(byteOut);
+            int numb = 1;
+            int count = 0;
+            int count1 = 0;
+            
+            ArrayList<String> abb = new ArrayList<String>();
+            abb.add("I'm telling you. Who's on first, What's on second, I Don't Know is on third--");
+            abb.add("Yes");
+            abb.add("Yes");
+            abb.add("Who");
+            abb.add("Who");
+            abb.add("Who is on first");
+            abb.add("I'm not asking you--I'm telling you. Who is on first.");
+            abb.add("That's the man's name.");
+            abb.add("Yes!");
+            
+            ArrayList<String> cos = new ArrayList<String>();
+            cos.add("You know the fellows' names?");
+            cos.add("Well, then who's playing first?");
+            cos.add("I mean the fellow's name on first base");
+            cos.add("The fellow playin' first base");
+            cos.add("The guy on first base");
+            cos.add("Well, what are you askin' me for?");
+            cos.add("I'm asking you--who's on first?");
+            cos.add("That's who's name?");
+
+            
+            for (int idx = 1; idx < 18; idx++) {
+              
+                if (numb <= 1) {
+                    numb += 1;
+
+                    dos.writeChars("1");
+                    dos.writeInt(abb.get(count).length() );
+                    String x = abb.get(count);
+                    dos.writeChars(x);
+                    
+                   
+                    count += 1;
+                   
+                } else {
+                    numb -= 1;
+                    dos.writeChars("2");
+                    dos.writeInt(cos.get(count1).length() );
+                     String x = cos.get(count1);
+                    dos.writeChars(x);
+                    count1 += 1;
+                  
+
+                }
+
+                byte[] buffer = byteOut.toByteArray();
+                // Put together a packet to send
+
+                // muticast group we are sending to--not a single host
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, multicastAddress, DESTINATION_PORT);
+
+                // How fast does this go? Does UDP try to slow it down, or does
+                // this cause network problems? (hint: yes for an unlimited send
+                // rate, unlike TCP). How do you know on the receiving side
+                // that you haven't received a duplicate UDP packet, out of
+                // order packet, or dropped packet?
+                multicastSocket.send(packet);
+                byteOut.reset();
+                Thread.sleep(1000); // Send 100, one per second
+                System.out.println("Sent multicast packet " + idx + " of 17");
+            }
+        } catch (Exception e) {
+            System.out.println(e);
+        }
+    }
+
+}
diff --git a/projects/MulticastExample/MulticastSenderExample/nbproject/private/private.xml b/projects/MulticastExample/MulticastSenderExample/nbproject/private/private.xml
index 28ec7df47718317f616aecf60d6e19f9a469d3ff..65bd4b1f50d823482647c5ec99c0c6a5787ac899 100644
--- a/projects/MulticastExample/MulticastSenderExample/nbproject/private/private.xml
+++ b/projects/MulticastExample/MulticastSenderExample/nbproject/private/private.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
-    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
-    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
-        <group>
-            <file>file:/Users/mcgredo/projects/gitlab/NetworkedGraphicsMV3500/projects/multicastExample1/MulticastSenderExample/src/multicastsenderexample/MulticastSenderExample.java</file>
-        </group>
-    </open-files>
-</project-private>
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
+    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
+        <group>
+            <file>file:/Users/mcgredo/projects/gitlab/NetworkedGraphicsMV3500/projects/multicastExample1/MulticastSenderExample/src/multicastsenderexample/MulticastSenderExample.java</file>
+        </group>
+    </open-files>
+</project-private>
diff --git a/projects/TcpExample4/TcpClient/TcpClient/build/classes/tcpclient/TcpClient.class b/projects/TcpExample4/TcpClient/TcpClient/build/classes/tcpclient/TcpClient.class
index f52b3948396a954fb2fc56ba07d118e68489d498..0c1c9ce889b9aa7fd8aa10eb21eb82a33b811d17 100644
Binary files a/projects/TcpExample4/TcpClient/TcpClient/build/classes/tcpclient/TcpClient.class and b/projects/TcpExample4/TcpClient/TcpClient/build/classes/tcpclient/TcpClient.class differ
diff --git a/projects/TcpExample4/TcpThreadServer/TcpThreadServer/build/classes/tcpthreadserver/TcpThreadServer.class b/projects/TcpExample4/TcpThreadServer/TcpThreadServer/build/classes/tcpthreadserver/TcpThreadServer.class
index 563756d8ae0965b8a41c17fb7b479d7c6ccde9ee..76fc0423ff1b6b3f9074de31544b063db6fff3bf 100644
Binary files a/projects/TcpExample4/TcpThreadServer/TcpThreadServer/build/classes/tcpthreadserver/TcpThreadServer.class and b/projects/TcpExample4/TcpThreadServer/TcpThreadServer/build/classes/tcpthreadserver/TcpThreadServer.class differ
diff --git a/projects/TcpExample5/WebExample/nbproject/private/private.xml b/projects/TcpExample5/WebExample/nbproject/private/private.xml
index 3b8b4163de50a79e24cf656a777068e4ae96a199..b264008408752461b7588da610e6a76cdbb368dd 100644
--- a/projects/TcpExample5/WebExample/nbproject/private/private.xml
+++ b/projects/TcpExample5/WebExample/nbproject/private/private.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
-    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
-    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
-        <group>
-            <file>file:/Users/mcgredo/projects/gitlab/NetworkedGraphicsMV3500/projects/TcpExample5/WebExample/src/webexample/WebExample.java</file>
-        </group>
-    </open-files>
-</project-private>
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
+    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
+        <group>
+            <file>file:/Users/mcgredo/projects/gitlab/NetworkedGraphicsMV3500/projects/TcpExample5/WebExample/src/webexample/WebExample.java</file>
+        </group>
+    </open-files>
+</project-private>
diff --git a/projects/UdpExample1/UdpSender/nbproject/private/private.xml b/projects/UdpExample1/UdpSender/nbproject/private/private.xml
index 6807a2ba1902a255b464065dd83188d73fbe6d01..284eeecf1720feb52a216ed20ae4b27bff58ee7b 100644
--- a/projects/UdpExample1/UdpSender/nbproject/private/private.xml
+++ b/projects/UdpExample1/UdpSender/nbproject/private/private.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
-    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
-    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
-        <group/>
-    </open-files>
-</project-private>
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
+    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
+        <group/>
+    </open-files>
+</project-private>