Something went wrong on our end
-
Brutzman, Don authoredBrutzman, Don authored
MahanTCPExample1Telnet.java 3.19 KiB
package MV3500Cohort2020JulySeptember.homework1;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* homework assignment
* @author Bill
*/
public class MahanTCPExample1Telnet
{
/**
* Default constructor to silence javadoc warning
* @see <a href="https://stackoverflow.com/questions/4488716/java-default-constructor" target="_blank">StackOverflow: Java default constructor</a>
*/
public MahanTCPExample1Telnet ()
{
// default initializations
}
/**
* Program invocation, execution starts here
* @param args command-line arguments
*/
public static void main(String[] args)
{
try
{
System.out.println("TcpExample1Telnet has started and is waiting for a connection.");
System.out.println(" help: https://savage.nps.edu/Savage/developers.html#telnet");
System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..." );
// The ServerSocket waits for a connection from a client.
// It returns a Socket object when the connection occurs.
ServerSocket serverSocket = new ServerSocket(2317);
// Use Java io classes to write text (as opposed to
// unknown bytes of some sort) to the client
// The Socket object represents the connection between
// the server and client, including a full duplex connection
try (Socket clientConnection = serverSocket.accept()) {
// Use Java io classes to write text (as opposed to
// unknown bytes of some sort) to the client
OutputStream os = clientConnection.getOutputStream();
PrintStream ps = new PrintStream(os);
ps.println("This client response was written by Bill's server TcpExample1."); // to remote clientnc
ps.println("When you see something that is not right, not fair, not just, you have to speak up. You have to say something; you have to do something. ");
System.out.println("This server response was written by Bill's server TcpExample1."); // to server console
System.out.println("John Lewis");
// "flush()" in important in that it forces a write
// across what is in fact a slow connection
ps.flush();
}
System.out.println("TcpExample1 completed successfully.");
}
catch(IOException e)
{
System.err.println("Problem with TcpExample1Telnet 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
// brute force exception checking, can be brittle if exception message changes
// if (e.getMessage().equals("Address already in use: NET_Bind"))
if (e instanceof java.net.BindException)
System.err.println("*** Be sure to stop any other running instances of programs using this port!");
}
}
}