За реализацията на сокети в 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 примери не е поддържаният интерфейс за конфигурация.

Подобни статии