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 YourApplication

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

Powiązane artykuły