Advertisement
Luninariel

MyWebServer - WIP

Oct 15th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.97 KB | None | 0 0
  1. // import packages and classes
  2. import java.io.BufferedOutputStream;
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.PrintWriter;
  8. import java.net.ServerSocket;
  9. import java.net.Socket;
  10. import java.util.StringTokenizer;
  11.  
  12. public class MyWebServer {
  13.     public static void main(String[] args) {
  14.         new MyWebServer();
  15.     }
  16.  
  17.     public MyWebServer() {
  18.         try {
  19.             BufferedReader bufferedReader0;
  20.             PrintWriter printWriter0;
  21.             BufferedOutputStream bufferedOutputStream0;
  22.             Socket clientSocket0;
  23.             ServerSocket serverSocket0 = new ServerSocket(PORT_NUM);
  24.             System.out.println("Listening ...");
  25.  
  26.             while (true) {
  27.                 // Listens for a connection to be made to this
  28.                 // socket and accepts it
  29.                 clientSocket0 = serverSocket0.accept();
  30.                 System.out.println(clientSocket0);
  31.                 bufferedReader0 = new BufferedReader(new InputStreamReader(
  32.                         // return an input stream for the
  33.                         // socket
  34.                         clientSocket0.getInputStream()));
  35.                 // for sending char output (header) to client
  36.                 printWriter0 = new PrintWriter(
  37.                         // return an output stream for the
  38.                         // socket
  39.                         clientSocket0.getOutputStream());
  40.                 // for sending binary output (requested data)
  41.                 // to client
  42.                 bufferedOutputStream0 = new BufferedOutputStream(
  43.                         // return an output stream for the
  44.                         // socket
  45.                         clientSocket0.getOutputStream());
  46.  
  47.                 String rqstString = bufferedReader0.readLine();
  48.                 System.out.println(rqstString);
  49.  
  50.                 StringTokenizer stringTokenizer0 = new StringTokenizer(rqstString);
  51.                 String method = stringTokenizer0.nextToken();
  52.                 // Extract requested file name from the request
  53.  
  54.                 String rqstdFileName = stringTokenizer0.nextToken();
  55.  
  56.                 File file0 = new File(WEB_DIR, rqstdFileName);
  57.                 int fileSize = (int) file0.length();
  58.  
  59.                 // read file data
  60.                 byte[] fileContent = new byte[fileSize];
  61.                 FileInputStream fileInputStream0 = new FileInputStream(file0);
  62.                 try {
  63.                     // read the request file into
  64.                     // fileContent
  65.                     fileInputStream0.read(fileContent);
  66.                    
  67.                 } finally {
  68.                     if (fileInputStream0 != null)
  69.                         fileInputStream0.close();
  70.                 }
  71.  
  72.                 // send HTTP Headers of the response
  73.                 // the first header is completed for you
  74.                 printWriter0.println("HTTP/1.1 200 OK");
  75.                 printWriter0.println("Content-length: " + fileSize);
  76.  
  77.  
  78.                 // a blank line after headers
  79.                 printWriter0.println();
  80.                 printWriter0.flush();
  81.  
  82.                 // send content of requested file
  83.  
  84.                 bufferedOutputStream0.write(fileContent);
  85.  
  86.                 bufferedOutputStream0.flush();
  87.                 bufferedReader0.close();
  88.                 printWriter0.close();
  89.                 bufferedOutputStream0.close();
  90.                 // close the client socket
  91.                 clientSocket0.close();
  92.             }
  93.            
  94.             // close the server socket
  95.             // serverSocket0.close();
  96.         } catch (Exception e) {
  97.             System.out.println(e);
  98.         }
  99.     }
  100.  
  101.     protected final File WEB_DIR = new File("./web_root");
  102.     protected final int PORT_NUM = 8080;
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement