如何在Java中使用SOCKS?

Cla*_*ark 8 java proxy http socks

我使用100%工作袜子,我无法通过我的应用程序连接.

        SocketAddress proxyAddr = new InetSocketAddress("1.1.1.1", 12345);
        Proxy pr = new Proxy(Proxy.Type.SOCKS, proxyAddr);

    try
    {
        HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection(pr);
        con.setConnectTimeout(proxyTimeout * 1000);
        con.setReadTimeout(proxyTimeout * 1000);
        con.connect();

        System.out.println(con.usingProxy());
    }
    catch(IOException ex)
    {
        Logger.getLogger(Enter.class.getName()).log(Level.SEVERE, null, ex);
    }
Run Code Online (Sandbox Code Playgroud)

那么我做错了什么?如果我将HTTP与一些HTTP代理一起使用,那么一切正常,但不是SOCKS.

Ham*_*eni 19

这真的很容易.您只需设置相关的系统属性,然后继续使用常规的HttpConnection.

System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "socksProxyHost", "127.0.0.1" );
System.getProperties().put( "socksProxyPort", "1234" );
Run Code Online (Sandbox Code Playgroud)


小智 6

通知“socksProxyHost”和“socksProxyPort”VM 参数。

例如

java -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=8080 org.example.Main
Run Code Online (Sandbox Code Playgroud)