Вибір 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 не є підтримуваним інтерфейсом конфігурації.