Proxy em java

ola pessoal,

preciso desenvolver um programinha que simule um proxy simples como trabalho de faculdade…

peguei um codigo simples na internet q deveria acessar o servidor da pagina web, pegar os htlmls e etc… e passar para o navegador:

[code]
import java.net.;
import java.io.
;
import java.util.;
import org.apache.commons.io.
;

public class Main {
public static void main(String[] args) throws Exception {
ServerSocket s = new ServerSocket(123);

	while (true) {
		Socket ac = s.accept();
		System.out.println("Recebendo requerimento browser com proxy...");
		BufferedReader rrad = new BufferedReader(new InputStreamReader(ac.getInputStream()));
		OutputStreamWriter rsnd = new OutputStreamWriter(ac.getOutputStream());
		StringBuilder prxreq2 = new StringBuilder();
		String temp;
		String host = "";

		while ( (temp = rrad.readLine()) != null)
            {
               // if (! temp.equals(""))
                //{
			if (temp.indexOf("Accept-Encoding") == -1) prxreq2.append(temp); prxreq2.append("\r\n");
			if (temp.indexOf("Host:") > -1) host = temp.split(": ")[1];
                //}
		}

            
           	prxreq2.append("\r\n");
		String prxreq = new String(prxreq2);
		System.out.println(prxreq);

		System.out.println("Re-enviando para o servidor...");
		Socket cl = new Socket(host,80);

		OutputStreamWriter d = new OutputStreamWriter(cl.getOutputStream());
		d.write(prxreq);
		d.flush();

		System.out.println("Esperando resposta do servidor...");
		String resp = IOUtils.toString(cl.getInputStream());
		System.out.println(resp);

		d.close();
		cl.close();

		System.out.println("Enviando resposta do servidor para o browser...");
		
		rsnd.write(resp);
		rsnd.flush();

		rsnd.close();
		ac.close();
	}
}

}[/code]

mas nao estou conseguindo fazer funcionar…

eu usei o firefox pra testar, fui em ferramentas/opções/configurar conexao/configuração manual de proxy/sockys = 127.0.0.1, porta = 123 e sokcs v5.

no que eu estou errando?

alguem pode me ajudar a fazer este proxy?

flw