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