Pentru implementarea socketurilor din OpenJDK 25, selectați SOCKS4 cu proprietatea socksProxyVersion. Aceasta poate fi furnizată la lansarea aplicației:

java -DsocksProxyVersion=4 YourApplication

Aplicaț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ă.

Articole similare