OpenJDK 25:n socket-toteutuksessa valitse SOCKS4 socksProxyVersion-ominaisuudella. Se voidaan antaa sovellusta käynnistettäessä:

java -DsocksProxyVersion=4 YourApplication

Sovellus 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.

Aiheeseen liittyvät artikkelit