Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package internet;
- import java.io.*;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class Internet {
- public static void main(String[] args) throws Throwable {
- ServerSocket ss = new ServerSocket(8080);
- while (true) {
- //ждем клиента
- Socket s = ss.accept();
- System.err.println("Client accepted");
- //Клиент пришол, создаем поток для обработки запроса. И тут же его стартуем
- new Thread(new SocketProcessor(s)).start();
- }
- }
- //Сам класс обработчика запроса
- private static class SocketProcessor implements Runnable {
- private Socket s;
- private InputStream is;
- private OutputStream os;
- private SocketProcessor(Socket s) throws Throwable {
- this.s = s;
- //Инициализируем потоки ввода и вывода
- this.is = s.getInputStream();
- this.os = s.getOutputStream();
- }
- //Главный метод потока здесь и проходит вся магия пока
- //он не завершится ответ клиенту не придет
- public void run() {
- try {
- readInputHeaders();
- String textInFile="";
- String temp;
- BufferedReader fin = new BufferedReader(new FileReader("src/internet/index.html"));
- while((temp=fin.readLine())!=null)
- {
- textInFile+=temp;
- }
- writeResponse(textInFile);
- } catch (Throwable t) {
- /*do nothing*/
- } finally {
- try {
- s.close();
- } catch (IOException t) {
- /*do nothing*/
- }
- }
- System.err.println("Client processing finished");
- }
- private void writeResponse(String s) throws Throwable {
- String response = "HTTP/1.1 200 OK\r\n" +
- "Content-Type: text/html\r\n" +
- "Content-Length: " + s.length() + "\r\n" +
- "Connection: close\r\n\r\n";
- String result = response + s;
- os.write(result.getBytes());
- os.flush();
- }
- private void readInputHeaders() throws Throwable {
- BufferedReader br = new BufferedReader(new InputStreamReader(is));
- while(true) {
- String s = br.readLine();
- System.err.println(s);
- if(s == null || s.trim().length() == 0) {
- break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement