JavaSocksV4代理
你能帮我吗,我遇到了这里描述的同样的问题: Java在Socks 5代理上运行良好,但在Socks 4代理上运行良好:JavaSocksV4代理,java,proxy,socks,Java,Proxy,Socks,你能帮我吗,我遇到了这里描述的同样的问题: Java在Socks 5代理上运行良好,但在Socks 4代理上运行良好: java.net.SocketException: Malformed reply from SOCKS server 消息来源如下: URL obj=新URL(URL) 我检查了很多v4代理,它们不工作。 也无助于添加道具: System.setProperty("socksProxyVersion", "4"); 关于这个问题有什么想法吗 感谢您的帮助。对于JDK 7,
java.net.SocketException: Malformed reply from SOCKS server
消息来源如下:
URL obj=新URL(URL)
我检查了很多v4代理,它们不工作。
也无助于添加道具:
System.setProperty("socksProxyVersion", "4");
关于这个问题有什么想法吗
感谢您的帮助。对于JDK 7,他们确实添加了
socksProxyVersion
属性,但您无法为单个连接设置该属性
建议的,
socksproxy版本
,属性对通过java.net.Proxy
编程设置的SOCKS代理没有任何影响。我使用了这个属性,它工作得非常好:
Socket s;
try {
s = new Socket(new Proxy(Proxy.Type.SOCKS, proxy));
s.setSoTimeout(5000);
s.connect(google);
s.close();
} catch(Throwable t) {
s = new Socket(new Proxy(Proxy.Type.SOCKS, proxy));
Method m = s.getClass().getDeclaredMethod("getImpl");
m.setAccessible(true);
Object sd = m.invoke(s);
m = sd.getClass().getDeclaredMethod("setV4");
m.setAccessible(true);
m.invoke(sd);
s.setSoTimeout(5000);
s.connect(google);
s.close();
}
没有类似于
socksProxyVersion的属性。
请参阅。
Socket s;
try {
s = new Socket(new Proxy(Proxy.Type.SOCKS, proxy));
s.setSoTimeout(5000);
s.connect(google);
s.close();
} catch(Throwable t) {
s = new Socket(new Proxy(Proxy.Type.SOCKS, proxy));
Method m = s.getClass().getDeclaredMethod("getImpl");
m.setAccessible(true);
Object sd = m.invoke(s);
m = sd.getClass().getDeclaredMethod("setV4");
m.setAccessible(true);
m.invoke(sd);
s.setSoTimeout(5000);
s.connect(google);
s.close();
}