Skip to content
Snippets Groups Projects
Commit c5d2ae30 authored by Simon32220's avatar Simon32220
Browse files

Homework1

parent 7097ba25
No related branches found
No related tags found
No related merge requests found
package MV3500Cohort2024JulySeptember.homework1.Schnitzler;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* @author simonschnitzler
*/
public class SchnitzlerUnicastNetworking {
/** Default constructor */
public SchnitzlerUnicastNetworking()
{
// default constructor
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try
{
System.out.println(SchnitzlerUnicastNetworking.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(" terminal: enter (telnet localhost 2317) or, for macOS (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()) // listen, 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 server " + SchnitzlerUnicastNetworking.class.getName()); // to remote client
System.out.println("This server response was written by server " + SchnitzlerUnicastNetworking.class.getName()); // to server console
// "flush()" in important in that it forces a write
// across what is in fact a slow connection
ps.flush();
}
System.out.println(SchnitzlerUnicastNetworking.class.getName() + " completed successfully.");
}
catch(IOException ioe)
{
System.err.println("Exception with " + SchnitzlerUnicastNetworking.class.getName() + " networking:"); // describe what is happening
System.err.println(ioe);
// 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 (ioe instanceof java.net.BindException)
System.err.println("*** Be sure to stop any other running instances of programs using this port!");
}
}
}
/**
* TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments" target="_blank">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful" target="_blank">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java" target="_blank">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework1.Schnitzler;
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