初心にかえって Socket クラス で HTTP Hello, World

最近あまりブログ書くネタもなく。 4月1日ということで、初心にかえって Java の Socket クラスで HTTP Hello, World.

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8080);
        while (true) {
            Socket socket = serverSocket.accept();
            OutputStream out = new BufferedOutputStream(socket.getOutputStream());
            out.write("HTTP/1.1 200 OK\r\n".getBytes());
            out.write("Content-Type: text/html\r\n".getBytes());
            out.write("\r\n".getBytes());
            out.write("<b>Hello, World !</b>".getBytes());
            out.flush();
            socket.close();
        }
    }
}

Webブラウザで http://localhost:8080/ にアクセスすれば、

Hello, World !

と表示される。

よし、俺なんでも作れる。