Выбар SOCKS4 у OpenJDK 25 з дапамогай socksProxyVersion
Выкарыстоўвайце дакументаваную ўласцівасць версіі з явным SOCKS-эндапойнтам у OpenJDK 25 і ўлічвайце агульнае для JVM поле дзеяння гэтай уласцівасці.
Для рэалізацыі сокетаў у OpenJDK 25 выбірайце SOCKS4 з дапамогай уласцівасці socksProxyVersion. Яе можна перадаць пры запуску праграмы:
java -DsocksProxyVersion=4 YourApplicationПраграма па-ранейшаму можа явна паказаць эндапойнт проксі:
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);
}Адрасы — гэта заглушкі. Неаўтэнтыфікаваны адрас са спіса SOCKS4-проксі можа запоўніць хост і порт проксі для дазволенага публічнага тэсту IPv4; фактычны мэтавы адрас IPv4 і порт выкарыстоўвайце асобна. Гэты фрагмент адкрывае і зачыняе TCP-паток; пратакол праграмы выкарыстоўваў бы злучаны паток унутры блока.
Рэалізацыя OpenJDK 25 правярае ўласцівасць версіі, нават калі канструктар атрымаў звычайны явны SOCKS Proxy. Публічны аб'ект Proxy сам змяшчае тып і адрас, а не поле версіі SOCKS для кожнага аб'екта.
Уласцівасць версіі мае агульнае для JVM поле дзеяння. Калі адначасовыя нагрузкі патрабуюць розных версій SOCKS, не пераключайце яе туды-сюды вакол асобных запытаў. Замест гэтага выкарыстоўвайце кліенцкі інтэрфейс, які падтрымлівае патрэбны выбар для кожнага злучэння. Прыватная рэфлексія setV4 са старых прыкладаў JDK не з'яўляецца падтрымліваным інтэрфейсам канфігурацыі.