Rya*_*n N 4 java sockets ssl proxy socks
我有一个客户端/服务器应用程序,通过Java的SSLSocket远程连接到服务器.
我正在尝试实现一个可选模式,通过经过身份验证的SOCKS v5代理启用连接.
我尝试使用相关的教程,但没有具体提及有关SSL的任何内容.
我已经尝试设置系统范围的属性("socksProxyHost"和"socksProxyPort")但它似乎没有做任何事情.
我的下一个方法是在SSLSocketFactory中使用工厂方法:
String proxyHost = Config.prefs.get("PROXY_NAME", "localhost");
int proxyPort = Config.prefs.getInt("PROXY_PORT", 1080);
InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new SSLSocket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(getHost(), getPort()));
socket = (SSLSocket) factory.createSocket(
underlying,
getHost(),
getPort(),
true);
Run Code Online (Sandbox Code Playgroud)
但是这种方法的问题是createSocket方法要求底层套接字已经连接,而我的服务器不接受非SSL连接.
使用SOCKS连接到远程服务器的最佳方法是什么?此外,我接下来不知道如何在此系统中为经过身份验证的SOCKS提供用户名/密码.
谢谢!
小智 8
String proxyHost = Config.prefs.get("PROXY_NAME", "localhost");
int proxyPort = Config.prefs.getInt("PROXY_PORT", 1080);
InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new Socket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(getHost(), getPort()));
socket = (SSLSocket) factory.createSocket(
underlying,
proxyHost,
proxyPort,
true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8550 次 |
| 最近记录: |