Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.97 KB | None | 0 0
  1. package internet;
  2.  
  3. import java.io.*;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.InputStreamReader;
  8. import java.io.OutputStream;
  9. import java.net.ServerSocket;
  10. import java.net.Socket;
  11.  
  12. public class Internet {
  13.  
  14.     public static void main(String[] args) throws Throwable {
  15.         ServerSocket ss = new ServerSocket(8080);
  16.         while (true) {
  17. //ждем клиента
  18.             Socket s = ss.accept();
  19.             System.err.println("Client accepted");
  20. //Клиент пришол, создаем поток для обработки запроса. И тут же его стартуем
  21.             new Thread(new SocketProcessor(s)).start();
  22.         }
  23.     }
  24. //Сам класс обработчика запроса
  25.     private static class SocketProcessor implements Runnable {
  26.  
  27.         private Socket s;
  28.         private InputStream is;
  29.         private OutputStream os;
  30.  
  31.         private SocketProcessor(Socket s) throws Throwable {
  32.             this.s = s;
  33.  
  34. //Инициализируем потоки ввода и вывода
  35.             this.is = s.getInputStream();
  36.             this.os = s.getOutputStream();
  37.         }
  38. //Главный метод потока здесь и проходит вся магия пока
  39. //он не завершится ответ клиенту не придет
  40.        
  41.         public void run() {
  42.             try {
  43.                 readInputHeaders();
  44.                 String textInFile="";
  45.                 String temp;
  46.                 BufferedReader fin = new BufferedReader(new FileReader("src/internet/index.html"));
  47.                
  48.                 while((temp=fin.readLine())!=null)
  49.                 {
  50.                     textInFile+=temp;
  51.                 }
  52.                
  53.                 writeResponse(textInFile);
  54.             } catch (Throwable t) {
  55.                 /*do nothing*/
  56.             } finally {
  57.                 try {
  58.                     s.close();
  59.                 } catch (IOException t) {
  60.                     /*do nothing*/
  61.                 }
  62.             }
  63.             System.err.println("Client processing finished");
  64.         }
  65.  
  66.         private void writeResponse(String s) throws Throwable {
  67.             String response = "HTTP/1.1 200 OK\r\n" +
  68.                     "Content-Type: text/html\r\n" +
  69.                     "Content-Length: " + s.length() + "\r\n" +
  70.                     "Connection: close\r\n\r\n";
  71.             String result = response + s;
  72.             os.write(result.getBytes());
  73.             os.flush();
  74.         }
  75.  
  76.         private void readInputHeaders() throws Throwable {
  77.             BufferedReader br = new BufferedReader(new InputStreamReader(is));
  78.             while(true) {
  79.                 String s = br.readLine();
  80.                 System.err.println(s);
  81.                 if(s == null || s.trim().length() == 0) {
  82.                    
  83.                     break;
  84.                 }
  85.             }
  86.         }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement