Socket's

Pessoal,

Tenho uma classe para download de arquivo ou paginas, e agora estou criando um socket para que eu possa usar um programa chamado pryvox de modo que a cada chamada que eu faça ele percorra um caminho diferente.
Ou seja quando eu executar minha classe ela tem que fazer a requisição passar pelo privox.
Classe download

 public class download {
     
    Leitura teclado = new Leitura(); // instanciando classe 
    
    public void getpagina(String endereco) throws IOException{
    try {
         FileWriter writer = new FileWriter(new File("temp1.htm")); // criar o arquivo - colocar, true para append
         PrintWriter grava = new PrintWriter(writer,true);  //  cria objeto para inserir texto, true faz append por linha
         URL url = new URL(endereco); // instancia a classe url
         BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));// cria um leitor de buffer e recebe o input strem e o urlstrem que e o resultado da consulta.
         String linha= new String("");// cria string linhas
        while ((linha = reader.readLine()) != null){ // enquando o buffer não estiver vazio
              grava.println(linha); // adiciona ao arquivo  
              grava.flush();
      }
         grava.close(); // fechar gravar
         writer.close(); //fechar writer
      }
      catch(UnknownHostException ioe){
          System.out.println("Erro ao acessar a url desejada.");
      }
      catch(SocketException ioe){
          System.out.println("Erro de protocolo TCP");
      }
      catch(UnknownServiceException ioe){
          System.out.println("Erro ao ler a pagina");
      }
      catch(EOFException ioe){
          System.out.println("Ouve uma interrupção ao gravar o arquivo");
      }
      catch(FileNotFoundException ioe){
          System.out.println("A pagina requisitada ou caminho invalido");
      }
      catch(CharConversionException ioe){
          System.out.println("Erro ao converter a url");
      }
      catch(UnsupportedEncodingException ioe){
          System.out.println("The Character Encoding is not supported.");
      }
    }
 }

Agora estou tentando setar a porta do privox,e para isso pelo que entendi preciso usar um socket.
Criei este metodo para setar, mais como eu faço agora para o meu metodo download usar esse socket ?

Metodo que criei para definir socket

    public void definesocket(){
      try{
      Socket s = null; //Declaro o socket cliente
      PrintStream ps = null;//Declaro a Stream de saida de dados
      s = new Socket("ip",porta); //Cria o socket com o recurso desejado na porta especificada
      ps = new PrintStream(s.getOutputStream()); //Cria a Stream de saida de dados
      ps.println(this.getpagina());
      s.close();
      }
      catch(IOException e){
          System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
      }
    } 

Mais uma coisa, fiz isso baseado na documentação do guj, pergunta o que eu sou cliente ou servidor ?
Pois quando faço download eu pego e passo a url e recebo a pagina.
O Programa proxy usa a biblioteca do internet explorer.