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