From bfe71aba918f3bc7609b9ad7f01f06a610dd19ae Mon Sep 17 00:00:00 2001
From: brutzman <brutzman@nps.edu>
Date: Sun, 18 Feb 2018 13:20:16 -0800
Subject: [PATCH] Homework 1 submission with refactor/rename to have student
 name first

---
 .../homework1/MaroonHomework1UML.pptx         | Bin 0 -> 39925 bytes
 .../homework1/MaroonTcpClient.java            |  62 +++++++++++++
 .../homework1/MaroonTcpServer.java            |  86 ++++++++++++++++++
 .../Assignments/homework1/MaroonUnit.java     |  43 +++++++++
 4 files changed, 191 insertions(+)
 create mode 100644 projects/Assignments/homework1/MaroonHomework1UML.pptx
 create mode 100644 projects/Assignments/homework1/MaroonTcpClient.java
 create mode 100644 projects/Assignments/homework1/MaroonTcpServer.java
 create mode 100644 projects/Assignments/homework1/MaroonUnit.java

diff --git a/projects/Assignments/homework1/MaroonHomework1UML.pptx b/projects/Assignments/homework1/MaroonHomework1UML.pptx
new file mode 100644
index 0000000000000000000000000000000000000000..2d92f878296ebf46e4e039d9b84157254780b1d6
GIT binary patch
literal 39925
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
AH~;_u

literal 0
HcmV?d00001

diff --git a/projects/Assignments/homework1/MaroonTcpClient.java b/projects/Assignments/homework1/MaroonTcpClient.java
new file mode 100644
index 0000000000..1c965bd153
--- /dev/null
+++ b/projects/Assignments/homework1/MaroonTcpClient.java
@@ -0,0 +1,62 @@
+
+package tcpclient;
+
+import java.io.*;
+import java.net.*;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.Socket;
+import java.util.Scanner;
+
+/**
+ * Before, we always used telnet to connect to the server. We
+ * are now writing our own program to do the connection.
+ * 
+ * As you will see, when we run this after we start the server
+ * we will see the same string telnet printed, sent by the server.
+ * The output at the server will show different socket pairs for
+ * each time we ran it.
+ * 
+ * @author mcgredo
+ */
+public class MaroonTcpClient {
+    
+    public static DataInputStream input;
+    public static DataOutputStream output;
+    
+
+  
+    public static void main(String[] args) 
+    {
+        Scanner userInput = new Scanner(System.in);
+        try
+        {
+           System.out.println("creating socket");
+           Socket socket = new Socket("localhost", 2317); 
+           
+           input = new DataInputStream(socket.getInputStream());
+           output = new DataOutputStream(socket.getOutputStream());
+           
+           
+           
+           System.out.println("Type position or ID: \n ");
+           String request;
+           request = userInput.nextLine();
+           output.writeUTF(request);
+           
+           String reply;
+           reply = input.readUTF();
+           System.out.println(reply);
+           
+           
+        }
+        catch(Exception e)
+        {
+            System.out.println(e);
+            System.out.println("Problem with client");
+        }
+
+    }
+    
+}
diff --git a/projects/Assignments/homework1/MaroonTcpServer.java b/projects/Assignments/homework1/MaroonTcpServer.java
new file mode 100644
index 0000000000..5835f592b4
--- /dev/null
+++ b/projects/Assignments/homework1/MaroonTcpServer.java
@@ -0,0 +1,86 @@
+package tcpserver;
+
+import java.io.*;
+import java.net.*;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.Arrays;
+
+/**
+ * Very slightly more complex than example1. A complete copy of
+ * example 2. The only thing this does
+ * differently is introduce a loop into the response, so you don't
+ * have to restart the program after one response. Also, it prints
+ * out the socket pair the server sees. Run the program via telnet
+ * several times and compare the socket pairs.
+ * 
+ * telnet localhost 2317
+ * 
+ * If you're sophisticated you can contact the instructor's computer
+ * while running this program.
+ * 
+ * telnet <ipOfServersLaptop> 2317
+ * 
+ * And have him display the socket pairs he got.
+ * @author mcgredo
+ */
+public class MaroonTcpServer 
+{
+    
+    public static DataInputStream input;
+    public static DataOutputStream output;
+    
+    
+    public static void main(String[] args) 
+    {
+        
+        MaroonUnit testUnit1 = new MaroonUnit ();
+        
+        try
+        {
+            // ServerSocket waits for a connection from a client. 
+            // Notice that it is outside the loop; ServerSocket
+            // needs to be made only once.
+            
+            ServerSocket serverSocket = new ServerSocket(2317);
+
+            // Loop, infinitely, waiting for client connections.
+            // Stop the program somewhere else.
+            while(true)
+            {
+                Socket clientConnection = serverSocket.accept();
+                //OutputStream os = clientConnection.getOutputStream();
+                input = new DataInputStream(clientConnection.getInputStream());
+                output = new DataOutputStream(clientConnection.getOutputStream());
+                
+                String request = input.readUTF();
+                
+                if ("position".equals(request)){
+                    output.writeUTF(Arrays.toString(testUnit1.getPosition()));
+                }
+                else if ("ID".equals(request)){
+                    output.writeUTF(""+ testUnit1.getID());
+                    
+                }else 
+                    output.writeUTF("I don't understand, try www.google.com");
+
+                
+                // Notice the use of flush() and close(). Without
+                // the close() to Socket object may stay open for 
+                // a while after the client has stopped needing this
+                // connection. Close() explicitly ends the connection.
+             
+                clientConnection.close();
+            }
+       }
+        catch(Exception e)
+        {
+            System.out.println("problem with networking");
+        }
+       
+    }
+    
+}
\ No newline at end of file
diff --git a/projects/Assignments/homework1/MaroonUnit.java b/projects/Assignments/homework1/MaroonUnit.java
new file mode 100644
index 0000000000..a9737e197f
--- /dev/null
+++ b/projects/Assignments/homework1/MaroonUnit.java
@@ -0,0 +1,43 @@
+/*
+ * 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 tcpserver;
+
+/**
+ *
+ * @author Kens
+ */
+class MaroonUnit {
+    
+    private int[] position =  new int[3];
+    private int ID;
+
+    MaroonUnit() {
+        this.position[0] = 0;
+        this.position[1] = 0;
+        this.position[2] = 0;
+        
+        this.ID = 50;
+        
+    }
+    
+    MaroonUnit(int x, int y, int z, int id){
+        this.position[0] = x;
+        this.position[1] = y;
+        this.position[2] = z;
+        
+        this.ID = id;
+    }
+
+    int getID(){
+        return this.ID;
+    }
+    
+   int [] getPosition(){
+        return this.position;
+    }
+    
+    
+}
-- 
GitLab