我正在构建一个简单的代理服务器。它不直接连接到互联网,而是通过其他代理服务器使用某种算法动态选择最合适的代理服务器。该代理服务器连接到 Internet。这是一个要求。 所以它看起来像这样:
Client ---> My Main Proxy ---> Proxy1 ----> Internet
或
Client ---> My Main Proxy ---> Proxy2 ----> Internet
或
Client ---> My Main Proxy ---> Proxy3 ----> Internet
我知道如何构建一个代理,它是 My Main Proxy
。但是如何将 My Main Proxy
连接到 ProxyX
?
或者更确切地说,如何通过 ProxyX
将 My Main Proxy
连接到 Internet(并将结果返回给 Client
)?
最佳答案
这取决于代理的类型(Socket 或 HTTP),但是 Socket
和 URL
类都有设置代理服务器的方法(设置它们以创建通过代理连接)。
例如:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.host", 8080));
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection(proxy);
对于 TCP 套接字连接
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("proxy.host", 80));
Socket socket = new Socket(proxy);
InetSocketAddress socketAddress = new InetSocketAddress(address, port);
socket.connect(socketAddress, 1000);
关于java - 通过另一个代理从一个代理连接到互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31364517/