直接贴代码,不解释
1 主服务,用来侦听端口
package org.javaren.proxy;import java.net.ServerSocket;import java.net.Socket;public class SocketProxy { /** * @param args */ public static void main(String[] args) throws Exception { ServerSocket serverSocket = new ServerSocket(8888); while (true) { Socket socket = null; try { socket = serverSocket.accept(); new SocketThread(socket).start(); } catch (Exception e) { e.printStackTrace(); } } }}
2 核心代码,处理链接的代理线程
内部设计了Socket的认证,自己看吧
package org.javaren.proxy;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class SocketThread extends Thread { private Socket socketIn; private InputStream isIn; private OutputStream osIn; // private Socket socketOut; private InputStream isOut; private OutputStream osOut; public SocketThread(Socket socket) { this.socketIn = socket; } private