diff --git a/.gitignore b/.gitignore index a8613d64644ee74981a6bae644609ba452aeddb5..57a63c7106fcaa80b3675fcbe16342cfc2635209 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ /projects/UdpExample1/UdpReceiver/nbproject/private/ /projects/UdpExample1/UdpSender/build/ /projects/UdpExample1/UdpSender/nbproject/private/ +/CourseExamples/dist/ \ No newline at end of file diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/FinalProject/FriscoFurrProject/FriscoFurrPduSender.java b/deliverables/src/MV3500Cohort2018JulySeptember/FinalProject/FriscoFurrProject/FriscoFurrPduSender.java new file mode 100644 index 0000000000000000000000000000000000000000..e7804b68a078db1bfd8b3d36a71ad41de3d88547 --- /dev/null +++ b/deliverables/src/MV3500Cohort2018JulySeptember/FinalProject/FriscoFurrProject/FriscoFurrPduSender.java @@ -0,0 +1,188 @@ +package MV3500Cohort2018JulySeptember.FinalProject.FriscoFurrProject; + +import java.io.*; +import java.net.*; +import java.util.*; + +import edu.nps.moves.dis.*; +import edu.nps.moves.disenum.*; +import edu.nps.moves.examples.ClassNameComparator; + +/** + * 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 FriscoFurrPduSender +{ + /** 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 = 3000; + + private int port; + InetAddress multicastAddress; + + public FriscoFurrPduSender(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() + { + System.out.println("DisExamples.PduSender started..."); + try { + List<Pdu> generatedPdus = new ArrayList<>(); + + // Loop through all the enumerated PDU types, create a PDU for each type, + // and add that PDU to a list. + for (PduType pdu : PduType.values()) { + Pdu aPdu = null; + + switch (pdu) // using enumeration values from edu.nps.moves.disenum.* + { + case ENTITY_STATE: + aPdu = new EntityStatePdu(); + EntityStatePdu espdu = (EntityStatePdu) aPdu; + Marking marking = new Marking(); + marking.setCharactersString("PduSender"); + espdu.setMarking(marking); + Vector3Double espduLocation = new Vector3Double(); + espduLocation.setX(1.0); + espduLocation.setY(2.0); + espduLocation.setZ(3.0); + break; + + case COMMENT: + aPdu = new CommentPdu(); + break; + + case FIRE: + aPdu = new FirePdu(); + break; + + case DETONATION: + aPdu = new DetonationPdu(); + break; + + case COLLISION: + aPdu = new CollisionPdu(); + break; + + case SERVICE_REQUEST: + aPdu = new ServiceRequestPdu(); + break; + + case RESUPPLY_OFFER: + aPdu = new ResupplyOfferPdu(); + break; + + case RESUPPLY_RECEIVED: + aPdu = new ResupplyReceivedPdu(); + break; + + case RESUPPLY_CANCEL: + aPdu = new ResupplyCancelPdu(); + break; + + case REPAIR_COMPLETE: + aPdu = new RepairCompletePdu(); + break; + + case REPAIR_RESPONSE: + aPdu = new RepairResponsePdu(); + break; + + case CREATE_ENTITY: + aPdu = new CreateEntityPdu(); + break; + + case REMOVE_ENTITY: + aPdu = new RemoveEntityPdu(); + break; + + case START_RESUME: + aPdu = new StartResumePdu(); + break; + + case STOP_FREEZE: + aPdu = new StopFreezePdu(); + break; + + case ACKNOWLEDGE: + aPdu = new AcknowledgePdu(); + break; + + case ACTION_REQUEST: + aPdu = new ActionRequestPdu(); + break; + + default: + System.out.print("PDU of type " + pdu + " not supported, created or sent "); + System.out.println(); + } + if (aPdu != null) + { + generatedPdus.add(aPdu); + } + } + + // Sort the created PDUs by class name + Collections.sort(generatedPdus, new ClassNameComparator()); + + // Send the PDUs we created + InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); + MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT); + socket.joinGroup(localMulticastAddress); + + for (int idx = 0; idx < generatedPdus.size(); idx++) + { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + byte[] buffer; + + Pdu aPdu = generatedPdus.get(idx); + aPdu.marshal(dos); + + buffer = baos.toByteArray(); + DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); + socket.send(packet); + System.out.println("Sent PDU of type " + aPdu.getClass().getName()); + } + // write the PDUs out to an XML file. + //PduContainer container = new PduContainer(); + //container.setPdus(generatedPdus); + //container.marshallToXml("examplePdus.xml"); + } catch (IOException e) + { + System.out.println(e); + } + } + + public static void main(String args[]) + { + if (args.length == 2) { + FriscoFurrPduSender sender = new FriscoFurrPduSender(Integer.parseInt(args[0]), args[1]); + sender.run(); + } else { + System.out.println("Usage: PduSender <port> <multicast group>"); + System.out.println("Default: PduSender " + DEFAULT_MULTICAST_PORT + " " + DEFAULT_MULTICAST_ADDRESS); + FriscoFurrPduSender sender = new FriscoFurrPduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); + sender.run(); + } + } +} diff --git a/originals/projects/MulticastExample/MulticastReceiver/build/built-jar.properties b/originals/projects/MulticastExample/MulticastReceiver/build/built-jar.properties new file mode 100644 index 0000000000000000000000000000000000000000..bdc69cb3a59532da5bc9cc8462ce8bfbc2d55f45 --- /dev/null +++ b/originals/projects/MulticastExample/MulticastReceiver/build/built-jar.properties @@ -0,0 +1,4 @@ +#Wed, 22 Aug 2018 09:40:08 -0700 + + +E\:\\Documents\\NPS\\MV3500_Internetwork_Communications\\NetworkedGraphicsMV3500\\projects\\MulticastExample\\MulticastReceiver= diff --git a/originals/projects/MulticastExample/MulticastReceiver/build/classes/multicastreceiver/MulticastReceiver.class b/originals/projects/MulticastExample/MulticastReceiver/build/classes/multicastreceiver/MulticastReceiver.class new file mode 100644 index 0000000000000000000000000000000000000000..1a1b9022da0a69e3ae81819894cd57a81b18b10e Binary files /dev/null and b/originals/projects/MulticastExample/MulticastReceiver/build/classes/multicastreceiver/MulticastReceiver.class differ diff --git a/originals/projects/MulticastExample/MulticastReceiver/nbproject/private/private.xml b/originals/projects/MulticastExample/MulticastReceiver/nbproject/private/private.xml new file mode 100644 index 0000000000000000000000000000000000000000..db03bb0777e82a916d6c25cf4285fa939f1834bb --- /dev/null +++ b/originals/projects/MulticastExample/MulticastReceiver/nbproject/private/private.xml @@ -0,0 +1,4 @@ +<?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"/> +</project-private> diff --git a/originals/projects/TcpExample3/Client/TcpClient/build/built-jar.properties b/originals/projects/TcpExample3/Client/TcpClient/build/built-jar.properties new file mode 100644 index 0000000000000000000000000000000000000000..205ba76f140d793b8454def0230de76bdacc2837 --- /dev/null +++ b/originals/projects/TcpExample3/Client/TcpClient/build/built-jar.properties @@ -0,0 +1,4 @@ +#Mon, 20 Aug 2018 09:06:48 -0700 + + +E\:\\Documents\\NPS\\MV3500_Internetwork_Communications\\NetworkedGraphicsMV3500\\projects\\TcpExample3\\Client\\TcpClient= diff --git a/originals/projects/TcpExample3/Client/TcpClient/build/classes/tcpclient/TcpClient.class b/originals/projects/TcpExample3/Client/TcpClient/build/classes/tcpclient/TcpClient.class new file mode 100644 index 0000000000000000000000000000000000000000..26a80cf0fb4f36ec25725e12c70ebc771a26a7fc Binary files /dev/null and b/originals/projects/TcpExample3/Client/TcpClient/build/classes/tcpclient/TcpClient.class differ diff --git a/originals/projects/TcpExample3/Server/TcpServer/build/built-jar.properties b/originals/projects/TcpExample3/Server/TcpServer/build/built-jar.properties new file mode 100644 index 0000000000000000000000000000000000000000..85e5f34dd88628be4bb21b07ebe84fba32284040 --- /dev/null +++ b/originals/projects/TcpExample3/Server/TcpServer/build/built-jar.properties @@ -0,0 +1,4 @@ +#Mon, 20 Aug 2018 09:06:34 -0700 + + +E\:\\Documents\\NPS\\MV3500_Internetwork_Communications\\NetworkedGraphicsMV3500\\projects\\TcpExample3\\Server\\TcpServer= diff --git a/originals/projects/TcpExample3/Server/TcpServer/build/classes/tcpserver/TcpServer.class b/originals/projects/TcpExample3/Server/TcpServer/build/classes/tcpserver/TcpServer.class new file mode 100644 index 0000000000000000000000000000000000000000..6e0aad6c538e6e59c6ffb97330b8df6046e4ce17 Binary files /dev/null and b/originals/projects/TcpExample3/Server/TcpServer/build/classes/tcpserver/TcpServer.class differ