Skip to content
Snippets Groups Projects
Commit fa88382e authored by Brutzman, Don's avatar Brutzman, Don
Browse files

javadoc adjustments

parent 48dade60
No related branches found
No related tags found
No related merge requests found
package MV3500Cohort2021JulySeptember.homework2.Robinson; package MV3500Cohort2021JulySeptember.homework2.Robinson;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader; import java.io.Reader;
import java.net.Socket; import java.net.Socket;
/** /**
* *
* @author mrobi * @author mrobi
*/ */
public class RobinsonTCP3exClient { public class RobinsonTCP3exClient {
public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; private final static String LOCALHOST = "0:0:0:0:0:0:0:1";
/** /**
* Program invocation, execution starts here * Program invocation, execution starts here
* @param args command-line arguments * @param args command-line arguments
*/ * @throws java.lang.InterruptedException for user exit
public static void main(String[] args) throws InterruptedException { */
public static void main(String[] args) throws InterruptedException {
// Local variables/fields
Socket socket = null; // Local variables/fields
InputStream is; Socket socket = null;
Reader isr; InputStream is;
BufferedReader br; Reader isr;
String serverMessage; BufferedReader br;
int clientLoopCount = 0; String serverMessage;
int totalLoops = 25; int clientLoopCount = 0;
int totalLoops = 25;
try {
while (clientLoopCount < totalLoops) try {
{ while (clientLoopCount < totalLoops)
clientLoopCount++; // increment at beginning of loop for reliability {
System.out.println(RobinsonTCP3exClient.class.getName() + " creating socket..."); clientLoopCount++; // increment at beginning of loop for reliability
System.out.println(RobinsonTCP3exClient.class.getName() + " creating socket...");
// We request an IP to connect to ("localhost") and
// port number at that IP (2317). This establishes // We request an IP to connect to ("localhost") and
// a connection to that IP in the form of a Socket // port number at that IP (2317). This establishes
// object; the server uses a ServerSocket to wait for // a connection to that IP in the form of a Socket
// connections. // object; the server uses a ServerSocket to wait for
socket = new Socket(LOCALHOST, 2317); // locohost? // connections.
socket = new Socket(LOCALHOST, 2317); // locohost?
// Now hook everything up (i.e. set up the streams), Java style:
is = socket.getInputStream(); // Now hook everything up (i.e. set up the streams), Java style:
isr = new InputStreamReader(is); is = socket.getInputStream();
br = new BufferedReader(isr); isr = new InputStreamReader(is);
br = new BufferedReader(isr);
// Read a single line written by the server. We'd
// do things a bit differently if there were many lines to be read // Read a single line written by the server. We'd
// from the server instead of one only. // do things a bit differently if there were many lines to be read
serverMessage = br.readLine(); // from the server instead of one only.
System.out.println("====================RobinsonHW2=============================="); serverMessage = br.readLine();
System.out.println("====================RobinsonHW2==============================");
System.out.print ("Client loop " + clientLoopCount + ": ");
System.out.println("now we're talking!"); System.out.print ("Client loop " + clientLoopCount + ": ");
System.out.println("The message the server sent was: '" + serverMessage + "'"); System.out.println("now we're talking!");
// socket gets closed, either automatically/silently by this code (or possibly by the server) System.out.println("The message the server sent was: '" + serverMessage + "'");
// socket gets closed, either automatically/silently by this code (or possibly by the server)
Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec (1/2 second)
Thread.sleep(500l); // slow things down, for example 500l (long) = 500 msec (1/2 second)
} // end while(true) // infinite loops are dangerous, be sure to kill this process!
} } // end while(true) // infinite loops are dangerous, be sure to kill this process!
catch (IOException e) }
{ catch (IOException e)
System.err.println("Problem with " + RobinsonTCP3exClient.class.getName() + " networking:"); // describe what is happening {
System.err.println("Error: " + e); System.err.println("Problem with " + RobinsonTCP3exClient.class.getName() + " 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) { // Provide more helpful information to user if exception occurs due to running twice at one time
System.err.println("*** Be sure to stop any other running instances of programs using this port!"); if (e instanceof java.net.BindException) {
} System.err.println("*** Be sure to stop any other running instances of programs using this port!");
} }
finally // occurs after any other activity when shutting down }
{ finally // occurs after any other activity when shutting down
try { {
if (socket != null) try {
socket.close(); if (socket != null)
} catch (IOException e) {} socket.close();
} catch (IOException e) {}
// program exit: tell somebody about that happening. Likely cause: server drops connection.
System.out.println(); // program exit: tell somebody about that happening. Likely cause: server drops connection.
System.out.println(RobinsonTCP3exClient.class.getName() + " exit"); System.out.println();
} System.out.println(RobinsonTCP3exClient.class.getName() + " exit");
} }
} }
}
package MV3500Cohort2021JulySeptember.homework2.Robinson; package MV3500Cohort2021JulySeptember.homework2.Robinson;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
/** /**
* * Homework assignment TcpExample3 server
* @author mrobi * @author mrobinson
*/ */
public class RobinsonTCP3exServer { public class RobinsonTCP3exServer {
public static void main(String[] args) { public static void main(String[] args) {
try { try {
// ServerSocket waits for a connection from a client. // ServerSocket waits for a connection from a client.
// Notice that it is outside the loop; ServerSocket // Notice that it is outside the loop; ServerSocket
// needs to be made only once. // needs to be made only once.
System.out.println(RobinsonTCP3exServer.class.getName() + " has started..."); // it helps debugging to put this on console first System.out.println(RobinsonTCP3exServer.class.getName() + " has started..."); // it helps debugging to put this on console first
ServerSocket serverSocket = new ServerSocket(2317); ServerSocket serverSocket = new ServerSocket(2317);
OutputStream os; OutputStream os;
PrintStream ps; PrintStream ps;
InetAddress localAddress, remoteAddress; InetAddress localAddress, remoteAddress;
int localPort, remotePort; int localPort, remotePort;
int serverLoopCount = 0; int serverLoopCount = 0;
// Server is up and waiting (i.e. "blocked" or paused) // Server is up and waiting (i.e. "blocked" or paused)
// Loop, infinitely, waiting for client connections. // Loop, infinitely, waiting for client connections.
// Stop the program somewhere else. // Stop the program somewhere else.
while (true) { while (true) {
// block until connected to a client // block until connected to a client
try (Socket clientConnectionSocket = serverSocket.accept()) try (Socket clientConnectionSocket = serverSocket.accept())
{ {
serverLoopCount++; // increment at beginning of loop for reliability serverLoopCount++; // increment at beginning of loop for reliability
// Now hook everything up (i.e. set up the streams), Java style: // Now hook everything up (i.e. set up the streams), Java style:
os = clientConnectionSocket.getOutputStream(); os = clientConnectionSocket.getOutputStream();
ps = new PrintStream(os); ps = new PrintStream(os);
ps.println("This is response " + serverLoopCount + " produced by the Robinson server."); // this gets sent back to client! ps.println("This is response " + serverLoopCount + " produced by the Robinson server."); // this gets sent back to client!
// Print some information locally about the Socket connection. // Print some information locally about the Socket connection.
// This includes the port and IP numbers on both sides (the socket pair). // This includes the port and IP numbers on both sides (the socket pair).
localAddress = clientConnectionSocket.getLocalAddress(); localAddress = clientConnectionSocket.getLocalAddress();
remoteAddress = clientConnectionSocket.getInetAddress(); remoteAddress = clientConnectionSocket.getInetAddress();
localPort = clientConnectionSocket.getLocalPort(); localPort = clientConnectionSocket.getLocalPort();
remotePort = clientConnectionSocket.getPort(); remotePort = clientConnectionSocket.getPort();
System.out.print ("Robinson Server loop " + serverLoopCount + ": "); System.out.print ("Robinson Server loop " + serverLoopCount + ": ");
// My socket pair connection looks like this, to localhost: // 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, 54876 ))
// Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 )) // 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? // Why is the first IP/port the same, while the second set has different ports?
System.out.println(RobinsonTCP3exServer.class.getName() + " socket pair showing host name, address, port:"); System.out.println(RobinsonTCP3exServer.class.getName() + " socket pair showing host name, address, port:");
System.out.println(" (( " + System.out.println(" (( " +
localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( " + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( " +
remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))"); remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))");
if ( localAddress.getHostName().equals( localAddress.getHostAddress()) || if ( localAddress.getHostName().equals( localAddress.getHostAddress()) ||
remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) remoteAddress.getHostName().equals(remoteAddress.getHostAddress()))
System.out.println(" note HostName matches address if host has no DNS name"); System.out.println(" note HostName matches address if host has no DNS name");
// Notice the use of flush() and try w/ resources. Without // Notice the use of flush() and try w/ resources. Without
// the try w/ resources the Socket object may stay open for // the try w/ resources the Socket object may stay open for
// a while after the client has stopped needing this // a while after the client has stopped needing this
// connection. try w/ resources explicitly ends the connection. // connection. try w/ resources explicitly ends the connection.
ps.flush(); ps.flush();
// like it or not, you're outta here! // like it or not, you're outta here!
} }
} }
} catch (IOException e) { } catch (IOException e) {
System.err.println("Problem with " + RobinsonTCP3exServer.class.getName() + " networking: " + e); System.err.println("Problem with " + RobinsonTCP3exServer.class.getName() + " networking: " + e);
// Provide more helpful information to user if exception occurs due to running twice at one time // Provide more helpful information to user if exception occurs due to running twice at one time
if (e instanceof java.net.BindException) { if (e instanceof java.net.BindException) {
System.err.println("*** Be sure to stop any other running instances of programs using this port!"); System.err.println("*** Be sure to stop any other running instances of programs using this port!");
} }
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment