Skip to content
Snippets Groups Projects
LoeffelmanAssignment1.java 2.78 KiB
/*
 * 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;

/**
 *
 * @author garrettloeffelman
 */
public class LoeffelmanAssignment1 {

    /**
     * @param args the 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);
        }
    }
    
}