java.net.SocketException:来自SOCKS服务器的格式错误的回复

时间:2013-11-22 03:21:50

标签: java sockets proxy socks

我尝试使用套接字创建SSLSocket,但我得到了这个异常

 SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new Socket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(host, port));
SSLSocket socket = (SSLSocket) factory.createSocket(underlying,proxyHost,proxyPort,true);

例外:    java.net.SocketException:来自SOCKS服务器的格式错误的回复

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

您已将应用程序配置为使用SOCKS代理,但您指定为proxyAddr的host:port上的实体不是SOCKS服务器。

答案 1 :(得分:0)

解决此问题:

  

1)打开工具 - > Internet Explorer中的Internet选项(或Windows 7中的控制面板网络设置)

     

2)打开“连接”选项卡

     

3)单击LAN设置

     

4)如果"使用代理服务器"已启用,单击高级并禁用"对所有协议使用相同的代理服务器"

答案 2 :(得分:0)

  

这仅控制Internet Explorer的功能。与它无关   Java。 OP的代码是显式地使用SOCKS代理,或试图这样做。   不依赖任何控制面板设置

Windows错误。...Internet选项控制Windows使用Proxyserver的方式,Internet Explorer只是使用“ Windows Standard配置”的一个应用程序。 Standardconfig中的Java使用“ Systemstandard”进行连接,因此,如果您不通过Java指定代理服务器,则此解决方法会有所帮助,但这不是“解决方案”。