Skip to content
Snippets Groups Projects
Commit 7d0237cc authored by schle's avatar schle
Browse files

No commit message

No commit message
parent f5dd3045
No related branches found
No related tags found
No related merge requests found
package TcpExamples;
import java.io.*;
import java.net.*;
/**
* Homework 1
*
* @author max schlessel
*/
public class SchlesselTcpExample1Telnet
{
/**
* Program invocation, execution starts here
* @param args command-line arguments
*/
public static void main(String[] args)
{
try
{
System.out.println(SchlesselTcpExample1Telnet.class.getName() + " 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()) // wait here for a client to connect
{
// OK we got something, time to respond!
// 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 Max's client " + SchlesselTcpExample1Telnet.class.getName()); // to remote client
ps.println("aka the shot heard round the world");
System.out.println("This server response was written by Max's server " + SchlesselTcpExample1Telnet.class.getName()); // to server console
System.out.println("boom");
// "flush()" in important in that it forces a write
// across what is in fact a slow connection
ps.flush();
}
System.out.println(SchlesselTcpExample1Telnet.class.getName() + " completed successfully.");
}
catch(IOException e)
{
System.err.println("Exception with " + SchlesselTcpExample1Telnet.class.getName() + " networking:"); // describe what is happening
System.err.println(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!");
}
}
}
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