socket class を作るに当たり、まずは java を手本にすることを考えよう。 手元にある本から、まずは次のプログラムを動かすことを目標にする。 // HttpMirror.java // // 出典: // JAVA プログラム クイック リファレンス // David Flanagan 著 // 小俣 裕一 監訳 // 豊福 剛 訳 // ISBN4-900900-09-5 // 例9-5 import java.io.*; import java.net.*; public class HttpMirror { public static void main(String args[]) { try { int port = Integer.parseInt(args[0]); ServerSocket ss = new ServerSocket(port); for(;;) { Socket client = ss.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(client.getOutputStream())); out.println("HTTP/1.0 200 "); out.println("Content-Type: text/plain"); out.println(); out.flush(); String line; while((line = in.readLine()) != null) { if (line.length() == 0) break; out.println(line); } out.close(); in.close(); client.close(); } } catch (Exception e) { System.err.println(e); System.err.println("Usage: java HttpMirror <port>"); } } } |