Selectarea SOCKS4 în OpenJDK 25 cu socksProxyVersion
Folosiți proprietatea de versiune documentată cu un punct final SOCKS explicit în OpenJDK 25 și țineți cont de domeniul de aplicare al proprietății la nivelul întregii JVM.
Pentru implementarea socketurilor din OpenJDK 25, selectați SOCKS4 cu proprietatea socksProxyVersion. Aceasta poate fi furnizată la lansarea aplicației:
java -DsocksProxyVersion=4 YourApplicationAplicația poate furniza în continuare punctul final al proxy-ului în mod explicit:
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);
}Adresele sunt substituenți. O adresă neautentificată din lista de proxy SOCKS4 poate completa gazda și portul proxy-ului pentru un test IPv4 public permis; utilizați separat adresa IPv4 și portul țintă reale. Acest fragment deschide și închide fluxul TCP; un protocol de aplicație ar folosi fluxul conectat din interiorul blocului.
Implementarea OpenJDK 25 verifică proprietatea de versiune chiar și atunci când constructorul a primit un Proxy SOCKS explicit obișnuit. Obiectul Proxy public conține el însuși un tip și o adresă, nu un câmp de versiune SOCKS pentru fiecare obiect.
Proprietatea de versiune are domeniu la nivelul întregii JVM. Dacă sarcinile de lucru concurente necesită versiuni SOCKS diferite, nu o comutați înainte și înapoi în jurul solicitărilor individuale. În schimb, utilizați o interfață de client care acceptă selecția necesară pentru fiecare conexiune. Reflexia privată setV4 din exemplele vechi JDK nu este interfața de configurare acceptată.