Vælg SOCKS4 i OpenJDK 25 med socksProxyVersion
Brug den dokumenterede versionsegenskab med et eksplicit SOCKS-endepunkt i OpenJDK 25, og tag højde for egenskabens JVM-dækkende omfang.
Til OpenJDK 25's socketimplementering skal du vælge SOCKS4 med egenskaben socksProxyVersion. Den kan angives, når programmet startes:
java -DsocksProxyVersion=4 YourApplicationProgrammet kan stadig angive proxyendepunktet eksplicit:
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);
}Adresserne er pladsholdere. En uautentificeret adresse fra SOCKS4-proxylisten kan udfylde proxyens vært og port til en tilladt offentlig IPv4-test; brug den faktiske mål-IPv4-adresse og port separat. Dette fragment åbner og lukker TCP-strømmen; en applikationsprotokol ville bruge den tilsluttede strøm inde i blokken.
OpenJDK 25's implementering kontrollerer versionsegenskaben, selv når konstruktøren har modtaget en almindelig eksplicit SOCKS Proxy. Det offentlige Proxy-objekt indeholder selv en type og adresse, ikke et SOCKS-versionsfelt pr. objekt.
Versionsegenskaben har JVM-dækkende omfang. Hvis samtidige arbejdsbelastninger kræver forskellige SOCKS-versioner, må du ikke skifte den frem og tilbage omkring individuelle anmodninger. Brug i stedet en klientgrænseflade, der understøtter det krævede valg pr. forbindelse. Privat setV4-refleksion fra gamle JDK-eksempler er ikke den understøttede konfigurationsgrænseflade.