/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package MV3500Cohort2018JulySeptember.homework1; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; /** * homework assignment * @author garrettloeffelman */ public class LoeffelmanAssignment1 { /** * 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 LoeffelmanAssignment1 () { // default initializations } /** * Program invocation, execution starts here * @param args command-line arguments */ public static void main(String[] args) { try { // The ServerSocket waits for a connection from a client. // It returns a Socket object when the connection occurs. ServerSocket serverSocket = new ServerSocket(2317); // The Socket object represents the connection between // the server and client, including a full duplex // connection 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("Nice job! You (the client) connected to port 2317, lets see if anything else is open!"); //to remote client ps.println("type 'nc -z -v {host-name-here} 2345-2355'"); // to remote client System.out.println("This is the server response by LoeffelmanExample1"); System.out.println("A client connected to this server and was instructed to check open ports"); // to server console // "flush()" in important in that it forces a write // across what is in fact a slow connection ps.flush(); clientConnection.close(); //Now we reOpen ServerSocket serverSocket2 = new ServerSocket(2350); Socket clientConnection2 = serverSocket2.accept(); OutputStream os2 = clientConnection2.getOutputStream(); PrintStream ps2 = new PrintStream(os2); ps2.println("WOW you're good! You found the open port 2350!"); //to remote client ps2.println("shutting down now, thanks for your help"); // to remote client THIS WILL NOT PRINT because the port scan will close the port System.out.println("Your client found the open port. This is the server response by LoeffelmanExample1"); // to server console ps.flush(); clientConnection.close(); } catch(Exception e) { System.out.println("problem with networking: " + e); } } }