import java.io.*;
import java.net.*;

public class Pphttpd {
  public static void main(String args[]){
    try {
      // サーバ用ソケットの作成
      ServerSocket servsock = new ServerSocket(Integer.parseInt(args[0]));
      while(true){
       Socket sock = servsock.accept(); // 接続要求の受付
        // 以下の処理は、時間がかかる場合は、
        // 本来はすぐに接続要求の受付に戻れるように、スレッドで行なうべきである。
				       
        // 接続先の表示
        System.out.println("Request from "
                           + (sock.getInetAddress()).getHostName());
        // 効率を考慮してバッファを利用する。 
        // （1文字ずつではなく、まとめて読めるようにする。）
        BufferedReader in  = new BufferedReader(
		  new InputStreamReader(sock.getInputStream()));
        // printlnメソッドが使えるように PrintStreamクラスを用いる
        PrintStream out = new PrintStream(sock.getOutputStream());
        // とりあえず改行を２つ読み飛ばす
        int i ;
	for(i=0; i<2; i++) {
          in.readLine();
        }
        out.println("<html>");
        out.println("<head><title>Test</title></head>");
        out.println("<body>Hello!</body>");
        out.println("</html>") ;
        // 接続終了
        sock.close() ;
      }
    } catch (Exception e){
      e.printStackTrace();
      System.exit(1) ;
    }
  }
}
