SOCKS4:n valinta OpenJDK 25:ssä socksProxyVersion-ominaisuudella
Käytä dokumentoitua versio-ominaisuutta eksplisiittisen SOCKS-päätepisteen kanssa OpenJDK 25:ssä ja ota huomioon ominaisuuden JVM:n laajuinen vaikutus.
OpenJDK 25:n socket-toteutuksessa valitse SOCKS4 socksProxyVersion-ominaisuudella. Se voidaan antaa sovellusta käynnistettäessä:
java -DsocksProxyVersion=4 YourApplicationSovellus voi edelleen antaa välityspalvelimen päätepisteen eksplisiittisesti:
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);
}Osoitteet ovat paikkamerkkejä. Todentamaton osoite SOCKS4-välityspalvelinluettelosta voi täyttää välityspalvelimen isäntänimen ja portin sallittua julkista IPv4-testiä varten; käytä todellista kohde-IPv4-osoitetta ja porttia erikseen. Tämä katkelma avaa ja sulkee TCP-virran; sovellusprotokolla käyttäisi yhdistettyä virtaa lohkon sisällä.
OpenJDK 25:n toteutus tarkistaa versio-ominaisuuden myös silloin, kun konstruktori on saanut tavallisen eksplisiittisen SOCKS Proxy -olion. Julkinen Proxy-olio sisältää itse tyypin ja osoitteen, ei oliolohtaista SOCKS-versiokenttää.
Versio-ominaisuus on JVM:n laajuinen. Jos samanaikaiset työkuormat vaativat eri SOCKS-versioita, älä vaihda sitä edestakaisin yksittäisten pyyntöjen ympärillä. Käytä sen sijaan asiakasrajapintaa, joka tukee vaadittua yhteyskohtaista valintaa. Vanhojen JDK-esimerkkien yksityinen setV4-heijastus ei ole tuettu konfigurointirajapinta.