Question: PLEASE READ CAREFULLY -Screenshot of web browser client request - Screenshot of Server source code compilation and execution - Screenshot of response received when connecting

PLEASE READ CAREFULLY

-Screenshot of web browser client request

- Screenshot of Server source code compilation and execution

- Screenshot of response received when connecting and transmitting data between the web browser client and server

- Analysis results and discussion g. Conclusions and comments about the concepts you learned by completing this projects

-Appendix with source code

- Java Program Files. Remember the name of the file must match the name of the class in the Java Code

I need help implementing these deliverables

here is my source code:

import java.io.*;

import java.net.*;

import java.util.*;

public final class WebServer

{

public static void main(String argv[]) throws Exception

{

//set the port number

int port = 6789;

//Establish the listen socket.

ServerSocket listenSocket = new ServerSocket(6789);

//Process HTTP service requests in an infinite loop

while (true)

{

//Listen for a TCP connection request

Socket connectionSocket = listenSocket.accept();

//Construct an object to process the HTTP request message.

HttpRequest request = new HttpRequest(connectionSocket);

// Create a new thread to process the request.

Thread thread = new Thread(request);

// Start the thread.

thread.start();

}

}

}

final class HttpRequest implements Runnable

{

final static String CRLF = " ";

Socket socket;

//Constructor

public HttpRequest(Socket socket) throws Exception

{

this.socket = socket;

}

// Implement the run() method of the Runnable interface.

public void run()

{

try {

processRequest();

} catch (Exception e) {

System.out.println(e );

e.printStackTrace();

}

}

private void processRequest() throws Exception

{

//Get a reference to the socket's input and output streams.

InputStream is = socket.getInputStream();

DataOutputStream os = new DataOutputStream(socket.getOutputStream());

//Set up input stream filters.

FilterInputStream fis;

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

//Get the request line of the HTTP request message.

String requestLine = br.readLine();

//Display request line.

System.out.println();

System.out.println(requestLine);

// Get and display the header lines

String headerline = null;

while ((headerline = br.readLine()).length() != 0)

{

System.out.println(headerline);

}

//close streams and socket.

//os.close();

//br.close();

//socket.close();

// Extract the filename from the request line.

StringTokenizer tokens = new StringTokenizer(requestLine);

tokens.nextToken(); // skip over the method, which should be "GET"

String fileName = tokens.nextToken();

//Prepend a "." so that file request is within the current directory.

fileName= "." + fileName;

// Open the requested file.

FileInputStream fis1 = null;

boolean fileExists = true;

try {

fis1 = new FileInputStream(fileName);

} catch (FileNotFoundException e) {

fileExists = false;

}

//Construct the response message.

String statusLine = null;

String contentTypeLine = null;

String entityBody = null;

if(fileExists) {

statusLine = "Responding to existing file";

contentTypeLine = "Content-type:" +

contentType( fileName ) + CRLF;

} else {

statusLine = "File doesn't exist ";

contentTypeLine = "no contents ";

entityBody = "" + "Not Found" + "Not Found";

// Send the status line.

os.writeBytes(statusLine);

// Send the content type line.

os.writeBytes(contentTypeLine);

// Send a blank line to indicate the end of the header lines.

os.writeBytes(CRLF);

// Send the entity body.

if (fileExists) {

sendBytes(fis1, os);

fis1.close();

} else {

os.writeBytes(entityBody);

}

}

os.close();

br.close();

socket.close();

}

private static void sendBytes(FileInputStream fis, OutputStream os) throws Exception

{

// Construct a 1K buffer to hold bytes on their way to the socket.

byte[] buffer = new byte[1024];

int bytes = 0;

// Copy requested file into the socket's output stream.

while((bytes=fis.read(buffer)) != -1) {

os.write(buffer, 0, bytes);

}

}

private static String contentType(String fileName)

{

if(fileName.endsWith(".htm") || fileName.endsWith(".html")) {

return "text/html";

}

if(fileName.endsWith(".gif") || fileName.endsWith(".GIF"))

{

return "image/gif";

}

if(fileName.endsWith(".jpeg"))

{

return "image/jpeg";

}

if(fileName.endsWith(".java"))

{

return "java file";

}

if(fileName.endsWith(".sh"))

{

return "bourne/awk";

}

return "application/octet-stream";

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!