Für die Socket-Implementierung von OpenJDK 25 wählen Sie SOCKS4 mit der Eigenschaft socksProxyVersion. Sie kann beim Starten der Anwendung übergeben werden:

java -DsocksProxyVersion=4 YourApplication

Die Anwendung kann den Proxy-Endpunkt weiterhin explizit angeben:

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);
}

Die Adressen sind Platzhalter. Eine nicht authentifizierte Adresse aus der SOCKS4-Proxy-Liste kann Host und Port des Proxys für einen zulässigen öffentlichen IPv4-Test füllen; verwenden Sie die tatsächliche Ziel-IPv4-Adresse und den Port separat. Dieses Fragment öffnet und schließt den TCP-Stream; ein Anwendungsprotokoll würde den verbundenen Stream innerhalb des Blocks nutzen.

Die Implementierung von OpenJDK 25 prüft die Versionseigenschaft auch dann, wenn der Konstruktor ein gewöhnliches explizites SOCKS-Proxy-Objekt erhalten hat. Das öffentliche Proxy-Objekt selbst enthält einen Typ und eine Adresse, kein SOCKS-Versionsfeld pro Objekt.

Die Versionseigenschaft gilt JVM-weit. Wenn gleichzeitige Arbeitslasten unterschiedliche SOCKS-Versionen erfordern, schalten Sie sie nicht um einzelne Anforderungen herum hin und her. Verwenden Sie stattdessen eine Client-Schnittstelle, die die erforderliche Auswahl pro Verbindung unterstützt. Private setV4-Reflexion aus alten JDK-Beispielen ist nicht die unterstützte Konfigurationsschnittstelle.

Ähnliche Artikel