Skip to content
Snippets Groups Projects
Commit 08a03a20 authored by adfis's avatar adfis
Browse files

No commit message

No commit message
parent 6732e90b
No related branches found
No related tags found
No related merge requests found
package MV3500Cohort2021JulySeptember.homework1; package MV3500Cohort2021JulySeptember.homework1;
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.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
/** /**
* *
* @author adfis * @author adfis
*/ */
public class FisherTCPExample1Telnet { public class FisherTCPExample1Telnet {
public static void main(String[] args) public static void main(String[] args)
{ {
try try
{ {
System.out.println("TcpExample1Telnet has started and is waiting for a connection."); 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(" help: https://savage.nps.edu/Savage/developers.html#telnet");
System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..." ); System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..." );
// The ServerSocket waits for a connection from a client. // The ServerSocket waits for a connection from a client.
// It returns a Socket object when the connection occurs. // It returns a Socket object when the connection occurs.
ServerSocket serverSocket = new ServerSocket(2317); ServerSocket serverSocket = new ServerSocket(2317);
// Use Java io classes to write text (as opposed to // Use Java io classes to write text (as opposed to
// unknown bytes of some sort) to the client // unknown bytes of some sort) to the client
// The Socket object represents the connection between // The Socket object represents the connection between
// the server and client, including a full duplex connection // the server and client, including a full duplex connection
try (Socket clientConnection = serverSocket.accept()) { try (Socket clientConnection = serverSocket.accept()) {
// Use Java io classes to write text (as opposed to // Use Java io classes to write text (as opposed to
// unknown bytes of some sort) to the client // unknown bytes of some sort) to the client
OutputStream os = clientConnection.getOutputStream(); OutputStream os = clientConnection.getOutputStream();
PrintStream ps = new PrintStream(os); PrintStream ps = new PrintStream(os);
ps.println("Client response was written by Alex' server TcpExample1."); // to remote clientnc ps.println("Client response was written by Alex' server TcpExample1."); // to remote clientnc
ps.println("We are crushing this assignment, good work."); ps.println("We are crushing this assignment, good work.");
System.out.println("Server response was written by Alex' server TcpExample1."); // to server console System.out.println("Server response was written by Alex' server TcpExample1."); // to server console
System.out.println("SUCCESS!"); System.out.println("SUCCESS!");
// "flush()" in important in that it forces a write // "flush()" in important in that it forces a write
// across what is in fact a slow connection // across what is in fact a slow connection
ps.flush(); ps.flush();
} }
System.out.println("TcpExample1 completed successfully."); System.out.println("TcpExample1 completed successfully.");
} }
catch(IOException e) catch(IOException e)
{ {
System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening System.err.println("Problem with FisherTCPExample1Telnet networking:"); // describe what is happening
System.err.println("Error: " + e); System.err.println("Error: " + 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
// brute force exception checking, can be brittle if exception message changes // brute force exception checking, can be brittle if exception message changes
// if (e.getMessage().equals("Address already in use: NET_Bind")) // if (e.getMessage().equals("Address already in use: NET_Bind"))
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