import java.io.*;
import java.net.*;

class ReturnHTTPHeaders extends Thread
{
 BufferedInputStream clientIS;
 BufferedOutputStream clientOS;
 Socket socketToClient;
 
 ReturnHTTPHeaders(Socket soc) throws Exception
 {
	clientIS = new BufferedInputStream (soc.getInputStream());
	clientOS = new BufferedOutputStream (soc.getOutputStream());
	socketToClient = soc;
 }
 
 public void run()
 {
   try{
 	DataInputStream clientDIS = new DataInputStream (clientIS);
 	String line;
 	PrintStream ps = new PrintStream (clientOS);
 	ps.println("HTTP/1.0 200 OK");
 	ps.println("Content-Type: text/html");
 	ps.println();

ps.println("<title>Header test</title>");
System.out.println(socketToClient.getRemoteSocketAddress());
 	ps.println("Client IP: "+socketToClient.getRemoteSocketAddress() +"<p>");
 	
 	while (!(line = clientDIS.readLine()).equals("")  ) 
		if (!line.startsWith("Host")) ps.println(line+"<br>");
 	ps.close();
 	socketToClient.close();
 	
 	}
 	catch (Exception e) {System.out.println("error: "+e);}
 }
 
public static void main(java.lang.String[] args) throws Exception
  {
  	ServerSocket ss = new ServerSocket (82);
  	while(true)
		new ReturnHTTPHeaders(ss.accept()).start();
 	}
}
