import java.io.*; import java.net.*; public class Pphttpd { public static void main(String args[]){ // サーバ用ソケットの作成 ServerSocket servsock = null; try { servsock = new ServerSocket(Integer.parseInt(args[0])); } catch (Exception e) { e.printStackTrace(); System.exit(1); } while(true){ try { 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()); // とりあえず改行を2つ読み飛ばす int i ; for(i=0; i<2; i++) { in.readLine(); } out.println(""); out.println("Test"); out.println("Hello!"); out.println(""); sock.close(); // 接続終了 } catch (IOException e){ e.printStackTrace(); } } } }