From 24b8f5006e2bc2d6925733fa4fa69548abc1e204 Mon Sep 17 00:00:00 2001
From: coltonfetterolf <52981302+coltonfetterolf@users.noreply.github.com>
Date: Thu, 8 Aug 2019 16:50:04 -0700
Subject: [PATCH] Updated HW 2 files and incorporated some iterations and
 if/else statements.

---
 .../Fetterolf/FetterolfHomework2Client.java   |  29 +++--
 .../Fetterolf/FetterolfHomework2Server.java   | 101 +++++++++++-------
 2 files changed, 83 insertions(+), 47 deletions(-)

diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java
index c93b5cc59b..1590f54fd9 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Client.java
@@ -16,21 +16,22 @@ import java.net.*;
  */
 public class FetterolfHomework2Client {
 
-   public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
+    public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
 
     public static void main(String[] args) {
-        
+
         // Local vars/fields
         Socket socket;
         InputStream is;
         InputStreamReader isr;
         BufferedReader br;
         String serverMessage;
-        
+
         try {
             while (true) {
-                //altered the socket creation piece
-                System.out.println("Homework 2 is creating socket...");
+
+                //Added a joke to begin with 
+                System.out.println("Where do teeth like to shop?");
 
                 // We request an IP to connect to ("localhost") and
                 // port number at that IP (2317). This establishes
@@ -50,21 +51,31 @@ public class FetterolfHomework2Client {
                 serverMessage = br.readLine();
                 System.out.println("==================================================");
                 //changed the connecting lingo
-                System.out.println("Sweet, looked like we're connected!");
+
                 System.out.println("The message the server sent was: '" + serverMessage + "'");
-                // socket gets closed, either automatically/silently by this code (or possibly by the server)
                 
+                //If the server predicts the correct answer, the client will
+                //say he is correct and break from the loop. Ultimately ending
+                //the connection.
+                if (serverMessage.contentEquals("The Gap")) {
+                    System.out.println("Correct!");
+                    break;
+                } else {
+                    System.out.println("Nope! Try again.");
+                }
+
+                // socket gets closed, either automatically/silently by this code (or possibly by the server)
             } // end while(true)
         } catch (IOException e) {
             System.err.println("Problem with TcpExample3ServerClient networking:"); // describe what is happening
             System.err.println("Error: " + e);
-            
+
             // Provide more helpful information to user if exception occurs due to running twice at one time
             if (e instanceof java.net.BindException) {
                 System.err.println("*** Be sure to stop any other running instances of programs using this port!");
             }
         } finally {
-        
+
             // program exit: tell somebody about that
             System.out.println("\nclient exit");
         }
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java
index ead7d6e285..c9c5c31ec5 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Fetterolf/FetterolfHomework2Server.java
@@ -27,12 +27,12 @@ public class FetterolfHomework2Server {
 
     public static void main(String[] args) {
         try {
-            
+
             // ServerSocket waits for a connection from a client. 
             // Notice that it is outside the loop; ServerSocket
             // needs to be made only once.
-            System.out.println("TcpExample3Server has started..."); // it helps debugging to put this on console first
             
+
             ServerSocket serverSocket = new ServerSocket(2317);
             OutputStream os;
             PrintStream ps;
@@ -42,47 +42,72 @@ public class FetterolfHomework2Server {
             // Server is up and waiting (i.e. "blocked" or paused)
             // Loop, infinitely, waiting for client connections.
             // Stop the program somewhere else.
-            while (true) { 
+            //initialize the messageToClient
+            String messageToClient = "Thomas' house";
+            
+            //Want the server to provide several answers to the question
+            //To keep the while loop, I just initialized a variable as a global
+            //to change as the code executes. 
+            int i = 0;
+            
+        //Added a length for the while loop dependent on the value of i. 
+        while (i<4) {
+
+            // block until connected to a client
+            try (Socket clientConnection = serverSocket.accept()) {
+
+                // Now hook everything up (i.e. set up the streams), Java style:
+                os = clientConnection.getOutputStream();
+                ps = new PrintStream(os);
+                //changed what the server says to the client in response
+                ps.println(messageToClient);
+
+                // Print some information locally about the Socket connection.
+                // This includes the port and IP numbers on both sides (the socket pair).
+                localAddress = clientConnection.getLocalAddress();
+                remoteAddress = clientConnection.getInetAddress();
+                localPort = clientConnection.getLocalPort();
+                remotePort = clientConnection.getPort();
+
+                // My socket pair connection looks like this, to localhost:
+                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
+                // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
+                // Why is the first IP/port the same, while the second set has different ports?
+                System.out.println("TcpExample3Server socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
+                        + remoteAddress.toString() + ", " + remotePort + " ))");
                 
-                // block until connected to a client
-                try (Socket clientConnection = serverSocket.accept()) {
-                    
-                    // Now hook everything up (i.e. set up the streams), Java style:
-                    os = clientConnection.getOutputStream();
-                    ps = new PrintStream(os);
-                    //changed what the server says to the client in response
-                    ps.println("Yo what up. "); // this gets sent back to client!
-                    
-                    // Print some information locally about the Socket connection.
-                    // This includes the port and IP numbers on both sides (the socket pair).
-                    localAddress = clientConnection.getLocalAddress();
-                    remoteAddress = clientConnection.getInetAddress();
-                    localPort = clientConnection.getLocalPort();
-                    remotePort = clientConnection.getPort();
-                    
-                    // My socket pair connection looks like this, to localhost:
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
-                    // Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
-                    
-                    // Why is the first IP/port the same, while the second set has different ports?
-                    System.out.println("TcpExample3Server socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
-                            + remoteAddress.toString() + ", " + remotePort + " ))");
-                    
-                    // Notice the use of flush() and try w/ resources. Without
-                    // the try w/ resources the Socket object may stay open for
-                    // a while after the client has stopped needing this
-                    // connection. try w/ resources explicitly ends the connection.
-                    ps.flush();
-                    // like it or not, you're outta here!
+                //Provides different answers to the client
+                if (i == 0) {
+                    messageToClient = "American Eagle";
                 }
+                if (i == 1) {
+                    messageToClient = "At Urban Outfitters";
+                }
+                if (i == 2) {
+                    messageToClient = "The Gap";
+                }
+                //Iterates i to change the answers provided.
+                i += 1;
+
+                // Notice the use of flush() and try w/ resources. Without
+                // the try w/ resources the Socket object may stay open for
+                // a while after the client has stopped needing this
+                // connection. try w/ resources explicitly ends the connection.
+                ps.flush();
+                // like it or not, you're outta here!
             }
-        } catch (IOException e) {
+        }
+    }
+    catch (IOException e
+
+    
+        ) {
             System.err.println("Problem with TcpExample3Server networking: " + e);
 
-            // Provide more helpful information to user if exception occurs due to running twice at one time
-            if (e instanceof java.net.BindException) {
-                System.err.println("*** Be sure to stop any other running instances of programs using this port!");
-            }
+        // Provide more helpful information to user if exception occurs due to running twice at one time
+        if (e instanceof java.net.BindException) {
+            System.err.println("*** Be sure to stop any other running instances of programs using this port!");
         }
     }
 }
+}
-- 
GitLab