//Copyright (c) 1999, 2002 Art Gittleman //This example is provided WITHOUT ANY WARRANTY either expressed or //implied. /* Revises HeaderServer.java to read from the client before sending the response. * Logically this makes more sense even if it takes a bit more work. */ import java.net.*; import java.io.*; import java.util.*; public class HeaderServer { public static void main(String [] args) { String s; Vector v = new Vector(); try { ServerSocket server = new ServerSocket(Integer.parseInt(args[0])); Socket client = server.accept(); BufferedReader fromClient = new BufferedReader (new InputStreamReader(client.getInputStream())); PrintWriter toClient = new PrintWriter (client.getOutputStream(), true); while (!(s=fromClient.readLine()).equals("")) v.addElement(s); toClient.println("HTTP/1.0 200 OK"); toClient.println("Content-type: text/plain"); toClient.println(); Enumeration e = v.elements(); while(e.hasMoreElements()) toClient.println((String)e.nextElement()); fromClient.close(); toClient.close(); client.close(); }catch(Exception e) { e.printStackTrace(); } } }