Wybór SOCKS4 w OpenJDK 25 za pomocą socksProxyVersion
Użyj udokumentowanej właściwości wersji z jawnym punktem końcowym SOCKS w OpenJDK 25 i uwzględnij zasięg właściwości w całej JVM.
W przypadku implementacji gniazd OpenJDK 25 wybierz SOCKS4 za pomocą właściwości socksProxyVersion. Można ją podać podczas uruchamiania aplikacji:
java -DsocksProxyVersion=4 YourApplicationAplikacja nadal może jawnie podać punkt końcowy serwera proxy:
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);
}Adresy są symbolami zastępczymi. Nieuwierzytelniony adres z listy serwerów proxy SOCKS4 może wypełnić host i port serwera proxy na potrzeby dozwolonego publicznego testu IPv4; rzeczywisty docelowy adres IPv4 i port należy podać osobno. Ten fragment otwiera i zamyka strumień TCP; protokół aplikacji używałby połączonego strumienia wewnątrz bloku.
Implementacja OpenJDK 25 sprawdza właściwość wersji nawet wtedy, gdy konstruktor otrzymał zwykły jawny obiekt Proxy typu SOCKS. Publiczny obiekt Proxy sam zawiera typ i adres, a nie pole wersji SOCKS dla każdego obiektu.
Właściwość wersji ma zasięg całej JVM. Jeśli równoczesne obciążenia wymagają różnych wersji SOCKS, nie przełączaj jej tam i z powrotem wokół poszczególnych żądań. Zamiast tego użyj interfejsu klienta, który obsługuje wymagany wybór dla każdego połączenia. Prywatna refleksja setV4 ze starych przykładów JDK nie jest obsługiwanym interfejsem konfiguracji.