SOCKS4 selecteren in OpenJDK 25 met socksProxyVersion
Gebruik de gedocumenteerde versie-eigenschap met een expliciet SOCKS-eindpunt in OpenJDK 25 en houd rekening met het JVM-brede bereik van de eigenschap.
Voor de socket-implementatie van OpenJDK 25 selecteert u SOCKS4 met de eigenschap socksProxyVersion. Deze kan bij het starten van de toepassing worden opgegeven:
java -DsocksProxyVersion=4 YourApplicationDe toepassing kan het proxy-eindpunt nog steeds expliciet opgeven:
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);
}De adressen zijn plaatsaanduidingen. Een niet-geverifieerd adres uit de SOCKS4-proxylijst kan de proxyhost en -poort vullen voor een toegestane openbare IPv4-test; gebruik het werkelijke doel-IPv4-adres en de poort afzonderlijk. Dit fragment opent en sluit de TCP-stroom; een toepassingsprotocol zou de verbonden stroom binnen het blok gebruiken.
De implementatie van OpenJDK 25 controleert de versie-eigenschap zelfs wanneer de constructor een gewoon expliciet SOCKS-Proxy heeft ontvangen. Het openbare Proxy-object bevat zelf een type en adres, niet een SOCKS-versieveld per object.
De versie-eigenschap heeft JVM-breed bereik. Als gelijktijdige workloads verschillende SOCKS-versies vereisen, schakel deze dan niet heen en weer rond afzonderlijke verzoeken. Gebruik in plaats daarvan een clientinterface die de vereiste selectie per verbinding ondersteunt. Privé-setV4-reflectie uit oude JDK-voorbeelden is niet de ondersteunde configuratie-interface.