För OpenJDK 25:s socket-implementering väljer du SOCKS4 med egenskapen socksProxyVersion. Den kan anges när programmet startas:

java -DsocksProxyVersion=4 YourApplication

Programmet kan fortfarande ange proxy-slutpunkten explicit:

Proxy proxy = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("proxy.example", 1080));
try (Socket socket = new Socket(proxy)) {
    socket.connect(new InetSocketAddress("192.0.2.10", 80), 5000);
    socket.setSoTimeout(10000);
}

Adresserna är platshållare. En oautentiserad adress från SOCKS4-proxylistan kan fylla i proxyns värd och port för ett tillåtet offentligt IPv4-test; använd den faktiska mål-IPv4-adressen och porten separat. Detta fragment öppnar och stänger TCP-strömmen; ett applikationsprotokoll skulle använda den anslutna strömmen inuti blocket.

OpenJDK 25:s implementering kontrollerar versionsegenskapen även när konstruktorn har fått en vanlig explicit SOCKS Proxy. Det offentliga Proxy-objektet innehåller självt en typ och adress, inte ett SOCKS-versionsfält per objekt.

Versionsegenskapen har JVM-omfattande räckvidd. Om samtidiga arbetsbelastningar kräver olika SOCKS-versioner ska du inte växla den fram och tillbaka kring enskilda förfrågningar. Använd istället ett klientgränssnitt som stöder det nödvändiga valet per anslutning. Privat setV4-reflektion från gamla JDK-exempel är inte det stödda konfigurationsgränssnittet.

Relaterade artiklar