From b9cbf1bb07cd17e9dd88b303e21b1e2997baa896 Mon Sep 17 00:00:00 2001 From: brutzman <brutzman@nps.edu> Date: Sun, 18 Feb 2018 14:27:13 -0800 Subject: [PATCH] Homework 1 submission with refactor/rename to have student name first --- .../homework1/TackettTcpClient.java | 84 +++++++++++++++ .../homework1/TackettTcpServer.java | 102 ++++++++++++++++++ .../homework1/TackettUmlDiagram.pptx | Bin 0 -> 34174 bytes 3 files changed, 186 insertions(+) create mode 100644 projects/Assignments/homework1/TackettTcpClient.java create mode 100644 projects/Assignments/homework1/TackettTcpServer.java create mode 100644 projects/Assignments/homework1/TackettUmlDiagram.pptx diff --git a/projects/Assignments/homework1/TackettTcpClient.java b/projects/Assignments/homework1/TackettTcpClient.java new file mode 100644 index 0000000000..c742f9147f --- /dev/null +++ b/projects/Assignments/homework1/TackettTcpClient.java @@ -0,0 +1,84 @@ +//package tcpclient; +import java.net.Socket; + +import java.io.*; +import java.net.*; + +/** + * 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 TackettTcpClient { + + public final static String LOCALHOST = "localhost"; + //String can also be IPV4 127.0.0.1 or IPV6 0:0:0:0:0:0:0:1 + + public static void main(String[] args) { + + try { + //while (true) { + System.out.println("creating socket"); + + // We request an IP to connect to ("localhost") and + // port number at that IP (2317). This establishes + // a connection to that IP in the form of the Socket + // object; the server uses a ServerSocket to wait for + // connections. + Socket socket = new Socket(LOCALHOST, 2317); + + OutputStream os = socket.getOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(os); + BufferedWriter bw = new BufferedWriter(osw); + + String locationMessage = "Enemy infantry spotted in the open at position Alpha"; + + String sendMessage = locationMessage + "\n"; + bw.write(sendMessage); + bw.flush(); + System.out.println("Message sent to the server: " + sendMessage); + + // Read the single line written by the server. We'd + // do things a bit differently if many lines to be read + // from the server, instead of one only. + InputStream is = socket.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + + String message = br.readLine(); + System.out.println("Message received from the server: "+message); + + String serverMessage = br.readLine(); + System.out.println("Now we're talking"); + System.out.println("The message the server sent was " + serverMessage); + } + catch(Exception exception) + { + // System.out.println(e); + exception.printStackTrace(); + System.out.println("Problem with client"); + System.out.println(exception); + } + finally + { + try + { + //socket.close(); + } + catch(Exception e) + { + e.printStackTrace(); + } + } + System.out.println("client exit"); + } + } + + + + diff --git a/projects/Assignments/homework1/TackettTcpServer.java b/projects/Assignments/homework1/TackettTcpServer.java new file mode 100644 index 0000000000..993019f1f4 --- /dev/null +++ b/projects/Assignments/homework1/TackettTcpServer.java @@ -0,0 +1,102 @@ +//package tcpserver; +import java.net.Socket; +import java.net.ServerSocket; + +import java.io.*; +import java.net.*; + +/** + * 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 TackettTcpServer +{ + + 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. + + ServerSocket serverSocket = new ServerSocket(2317); + + // Loop, infinitely, waiting for client connections. + // Stop the program somewhere else. + while(true) + { + Socket clientConnection = serverSocket.accept(); + InputStream is = clientConnection.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + String receivedMessage = br.readLine(); + System.out.println("Message received from client is " + receivedMessage); + + String returnMessage; + + returnMessage = "Enemy position acknowledged" + "\n"; + + + OutputStream os = clientConnection.getOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(os); + BufferedWriter bw = new BufferedWriter(osw); + bw.write(returnMessage); + System.out.println("Message sent to the client is " + returnMessage); + bw.flush(); + + PrintStream ps = new PrintStream(os); + + ps.println("This was written by the server"); + + // Print some information locally about the Socket + // connection. This includes the port and IP numbers + // on both sides (the socket pair.) + + InetAddress localAddress = clientConnection.getLocalAddress(); + InetAddress remoteAddress = clientConnection.getInetAddress(); + + int localPort = clientConnection.getLocalPort(); + int 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("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " + + remoteAddress.toString() + ", " + remotePort + " ))"); + + // 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. + ps.flush(); + clientConnection.close(); + } + } + catch(Exception e) + { + System.out.println("problem with networking"); + } + + } + +} \ No newline at end of file diff --git a/projects/Assignments/homework1/TackettUmlDiagram.pptx b/projects/Assignments/homework1/TackettUmlDiagram.pptx new file mode 100644 index 0000000000000000000000000000000000000000..b8a7b0ff57f16dcbebde4a4a6006eeb72fae5252 GIT binary patch literal 34174 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 F{SWlTypI3? literal 0 HcmV?d00001 -- GitLab