天天看點

Java多線程系列 - 使用Java多線程實作Http響應的實作

HTTP響應

 HTTP響應是伺服器根據使用者的HTTP請求做出的一種回應。

HTTP響應的實作

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.TimeUnit;

/*
*	多線程的實作
*/
class MyThead extends Thread {
    private final Socket socket;

    public MyThead(Socket socket) {
        this.socket = socket;
    }

    @Override
    public void run() {
        try {
            OutputStream os = socket.getOutputStream();
            OutputStreamWriter osWriter = new OutputStreamWriter(os, "UTF-8");
            PrintWriter printWriter = new PrintWriter(osWriter);

            String response = "HTTP/1.0 200 OK\r\n" +
                    "Content-Type: text/plain; charset=utf-8\r\n" +
                    "\r\n" +
                    "你好世界";

            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException exc) {
                exc.printStackTrace();
            }

            printWriter.print(response);
            printWriter.flush();

            socket.close();
        } catch (IOException exc) {
            exc.printStackTrace();
        }
    }
}

public class HttpServer {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8080);
        while (true) {
            Socket socket = serverSocket.accept();
            MyThead t = new MyThead(socket);
            t.start();
        }
    }
}