Pessoal,
 alguém pode me ajudar sobre, como fazer um proxy em java eu estou tentando o seguinte mas não está funcionando...
 
Obrigado...
 
******************************************************************
import java.io.*;
import java.net.*;
public class Server { 
  public static void main(String[] args ) { 
    try { 
 
      ServerSocket s = new ServerSocket(3128);
 
      System.out.println("Starting Proxy in port 3128 .........");
 
//      for (;;) { 
          Socket incoming = s.accept( );
          System.out.println(".");
          new ManagerStream(incoming).start();
//      }
    }
    catch (Exception e) { 
      System.out.println("class Server -> " + e);
    }
  }
 
}
 
class ManagerStream extends Thread {
 
  private Socket sA;
  private Socket sB;
 
  public ManagerStream(Socket A) {
    try {
      sA = A;
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }
 
  public void run() { 
    try { 
      sB = new Socket("168.192.18.38",3128);
 
      new SendStream(sA,sB).start();
 
    }
    catch (Exception e) { 
      System.out.println("ManagerStream -> " + e);
    }
  }
}
 
class SendStream extends Thread {
 
  private Socket sA;
  private Socket sB;
 
  public SendStream(Socket A, Socket B) {
    try {
      sA = A;
      sB = B;
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }
 
  public void run() { 
    try { 
   
      // Entrada
      BufferedInputStream in_A   = new BufferedInputStream(sA.getInputStream());
      BufferedOutputStream out_B = new BufferedOutputStream(sB.getOutputStream());
      out_B.write(in_A.read());
 
      new ReceivingStream(sA,sB).start();
 
    }
    catch (Exception e) { 
      System.out.println("SendStream -> " + e);
    }
  }
}
 
class ReceivingStream extends Thread {
 
  private Socket sA;
  private Socket sB;
 
  public ReceivingStream(Socket A, Socket B) {
    try {
      sA = A;
      sB = B;
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }
 
  public void run() { 
    try { 
   
      // Entrada
      BufferedInputStream in_B   = new BufferedInputStream(sB.getInputStream());
      // Saida
      BufferedOutputStream out_A = new BufferedOutputStream(sA.getOutputStream());
      out_A.write(in_B.read());
 
      sA.close();
      sB.close();
 
    }
    catch (Exception e) { 
      System.out.println("ReceivingStream -> " + e);
    }
  }
}
*****************************************************88

Responder a