From 0e57e8dcd7e55438223127207a9b8e939eaccd06 Mon Sep 17 00:00:00 2001 From: brutzman <brutzman@nps.edu> Date: Tue, 3 Aug 2021 11:04:08 -0700 Subject: [PATCH] debug testing with Terry and Don --- .../TcpExample2ConnectionCounting.java | 35 ++++++---- ...pExample2ConnectionCountingTerminalLog.txt | 69 +++++++++---------- 2 files changed, 56 insertions(+), 48 deletions(-) diff --git a/examples/src/TcpExamples/TcpExample2ConnectionCounting.java b/examples/src/TcpExamples/TcpExample2ConnectionCounting.java index 478508c9f7..3b99cfa68f 100644 --- a/examples/src/TcpExamples/TcpExample2ConnectionCounting.java +++ b/examples/src/TcpExamples/TcpExample2ConnectionCounting.java @@ -33,16 +33,10 @@ public class TcpExample2ConnectionCounting { System.out.println("TcpExample2ConnectionCounting has started and is waiting for a connection."); System.out.println(" help: https://savage.nps.edu/Savage/developers.html#telnet"); - // Where are we? In other words, what is our host number? Advertise it - // https://stackoverflow.com/questions/9481865/getting-the-ip-address-of-the-current-machine-using-java - String localHostAddress = Inet4Address.getLocalHost().toString(); - System.out.println("Local host address is " + localHostAddress); - if (localHostAddress.contains("/")) - localHostAddress = localHostAddress.substring(localHostAddress.indexOf("/")+1); - // show localhost IP number to facilitate connections over local area network (LAN, WAN) - System.out.println(" enter (nc localhost 2317) or (telnet localhost 2317) for local operation" ); - System.out.println(" enter (nc " + localHostAddress + " 2317) or " + - "(telnet " + localHostAddress + " 2317)..." ); + System.out.println(" Windows ipconfig (or Mac ifconfig) indicates current IPv4_Address (for example local wireless IP address)"); + System.out.println(" Windows enter (telnet localhost 2317) or Mac enter (nc localhost 2317) for loopback operation, or" ); + System.out.println(" Windows enter (telnet IPv4_Address 2317) or Mac enter (nc IPv4_Address 2317) for LAN operation" ); + System.out.println("TcpExample2ConnectionCounting server standing by..." ); // ServerSocket waits for a connection from a client. // Notice that it is outside the loop; ServerSocket needs to be made only once. @@ -51,18 +45,33 @@ public class TcpExample2ConnectionCounting ServerSocket serverSocket = new ServerSocket(2317); // server decides here what port to listen on. // of interest: often client doesn't care what port it uses locally when connecting to that server port. - + // Loop, infinitely, waiting for client connections. // Stop the program somewhere else. while(true) { - // blocks! then proceeds once a connection is "accept"ed + // serverSocket.accept() blocks! then proceeds once a connection is "accept"ed try (Socket clientConnection = serverSocket.accept()) { connectionCount++; // got another one! OutputStream os = clientConnection.getOutputStream(); PrintStream ps = new PrintStream(os); +// if (connectionCount == 1) // first time through, report connection +// { +// // Where are we? In other words, what is our host number? Advertise it. +// // Note that we use the serverSocket to get address, since host may have multiple network connections. +// // https://stackoverflow.com/questions/9481865/getting-the-ip-address-of-the-current-machine-using-java +// String localHostAddress = clientConnection.getInetAddress().getHostAddress(); +// System.out.println("Local host address is " + localHostAddress); +// if (localHostAddress.contains("/")) +// localHostAddress = localHostAddress.substring(localHostAddress.indexOf("/")+1); +// // show localhost IP number to facilitate connections over local area network (LAN, WAN) +// System.out.println(" enter (nc localhost 2317) or (telnet localhost 2317) for local operation" ); +// System.out.println(" enter (nc " + localHostAddress + " 2317) or " + +// "(telnet " + localHostAddress + " 2317)..." ); +// } + ps.println("This client response was written by server " + TcpExample2ConnectionCounting.class.getName()); // to remote client System.out.println("This server response was written by server " + TcpExample2ConnectionCounting.class.getName()); // to server console @@ -83,7 +92,7 @@ public class TcpExample2ConnectionCounting // // Why is first IP/port the same, while the second set has different ports? - System.out.println("Socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( " + + System.out.println("Socket pair (server, client): (( " + localAddress.toString() + ", " + localPort + " ), ( " + remoteAddress.toString() + ", " + remotePort + " ))"); System.out.println("got another connection, #" + connectionCount); // report progress diff --git a/examples/src/TcpExamples/TcpExample2ConnectionCountingTerminalLog.txt b/examples/src/TcpExamples/TcpExample2ConnectionCountingTerminalLog.txt index 5daf91804f..e7324dfea0 100644 --- a/examples/src/TcpExamples/TcpExample2ConnectionCountingTerminalLog.txt +++ b/examples/src/TcpExamples/TcpExample2ConnectionCountingTerminalLog.txt @@ -1,47 +1,46 @@ Invocation instructions: -1. run/debug TcpExample2.java -2. console: nc localhost 2317 - alternate: telnet localhost 2217 +1. run/debug TcpExample2ConnectionCounting.java + +2. Windows: ipconfig + MacOS: ifconfig + +3. Windows: telnet localhost 2317 + MacOS: nc localhost 2317 Program responses: =================================================== -run: -TcpExample2ConnectionCounting has started and is waiting for a connection: telnet localhost 2317 -This server response was written by server TcpExample2ConnectionCounting -Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 57630 )) +run-single: +TcpExample2ConnectionCounting has started and is waiting for a connection. + help: https://savage.nps.edu/Savage/developers.html#telnet + Windows ipconfig (or Mac ifconfig) indicates current IPv4_Address (for example local wireless IP address) + Windows enter (telnet localhost 2317) or Mac enter (nc localhost 2317) for loopback operation, or + Windows enter (telnet IPv4_Address 2317) or Mac enter (nc IPv4_Address 2317) for LAN operation +TcpExample2ConnectionCounting server standing by... +This server response was written by server TcpExamples.TcpExample2ConnectionCounting +Socket pair (server, client): (( /172.20.154.38, 2317 ), ( /172.20.153.125, 55424 )) got another connection, #1 -This server response was written by server TcpExample2ConnectionCounting -Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 57631 )) +This server response was written by server TcpExamples.TcpExample2ConnectionCounting +Socket pair (server, client): (( /172.20.154.38, 2317 ), ( /172.20.153.125, 55425 )) got another connection, #2 -This server response was written by server TcpExample2ConnectionCounting -Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 57633 )) +This server response was written by server TcpExamples.TcpExample2ConnectionCounting +Socket pair (server, client): (( /172.20.154.38, 2317 ), ( /172.20.153.125, 55426 )) got another connection, #3 +This server response was written by server TcpExamples.TcpExample2ConnectionCounting +Socket pair (server, client): (( /172.20.154.38, 2317 ), ( /172.20.153.125, 55427 )) +got another connection, #4 +This server response was written by server TcpExamples.TcpExample2ConnectionCounting +Socket pair (server, client): (( /172.20.154.38, 2317 ), ( /172.20.153.125, 55428 )) +got another connection, #5 +This server response was written by server TcpExamples.TcpExample2ConnectionCounting +Socket pair (server, client): (( /172.20.154.38, 2317 ), ( /172.20.154.38, 49308 )) +got another connection, #6 =================================================== -don@it154928 /cygdrive/c/Program Files/NetBeans 8.2 $ telnet localhost 2317 -Trying ::1... -Connected to localhost. -Escape character is '^]'. -This client response was written by server TcpExample2 -You were connection #1, by my count -Connection closed by foreign host. -don@it154928 /cygdrive/c/Program Files/NetBeans 8.2 -$ telnet localhost 2317 -Trying ::1... -Connected to localhost. -Escape character is '^]'. -This client response was written by server TcpExample2 -You were connection #2, by my count -Connection closed by foreign host. - -don@it154928 /cygdrive/c/Program Files/NetBeans 8.2 -$ telnet localhost 2317 -Trying ::1... -Connected to localhost. -Escape character is '^]'. -This client response was written by server TcpExample2 -You were connection #3, by my count -Connection closed by foreign host. +This client response was written by server TcpExamples.TcpExample2ConnectionCounting +You were connection #6, by my count + +Connection to host lost. +=================================================== \ No newline at end of file -- GitLab