import java.io.*; import java.net.*; import java.util.Date; // wget -S public class ProxyServer2 { public static void main( String[] args ) { int port = 8126; // TO DO: read port from argv[1] ProxyServer2 theServer = new ProxyServer2( port ); } public ProxyServer2( int port ) { System.out.println( "Server started at " + new Date() ); try { // Create a server (listener) socket ServerSocket serverSocket = new ServerSocket( port, 5 ); // Note the second arg is 5, which is the backlog.... while ( true ) { // Listen for a connection request from a client System.out.println( "Blocking on accept()" ); Socket clientSocket = serverSocket.accept(); // BLOCK! System.out.println( "Client connection rcvd at " + new Date() ); // StringBuilder request = new StringBuilder(); InputStream stream = clientSocket.getInputStream(); // ADD BUFFERED READER: BufferedReader in = new BufferedReader( new InputStreamReader( stream ) ); String request = in.readLine(); System.out.println( "Request-Line is: " + request ); String header; while ( ( header = in.readLine() ) != null ) { System.out.println( "RCVD: " + header ); //header = header.trim(); if ( header.length() == 0 ) break; // end of headers if ( header.startsWith( "Content-Length:" ) ) { int x = Integer.parseInt( header.substring( 16 ) ); System.out.println( "Content length is " + x ); } } // TO DO: handle POST requests by // relying on Content-Length in the // headers. String page = "