Til OpenJDK 25's socketimplementering skal du vælge SOCKS4 med egenskaben socksProxyVersion. Den kan angives, når programmet startes:

java -DsocksProxyVersion=4 YourApplication

Programmet kan stadig angive proxyendepunktet eksplicit:

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

Adresserne er pladsholdere. En uautentificeret adresse fra SOCKS4-proxylisten kan udfylde proxyens vært og port til en tilladt offentlig IPv4-test; brug den faktiske mål-IPv4-adresse og port separat. Dette fragment åbner og lukker TCP-strømmen; en applikationsprotokol ville bruge den tilsluttede strøm inde i blokken.

OpenJDK 25's implementering kontrollerer versionsegenskaben, selv når konstruktøren har modtaget en almindelig eksplicit SOCKS Proxy. Det offentlige Proxy-objekt indeholder selv en type og adresse, ikke et SOCKS-versionsfelt pr. objekt.

Versionsegenskaben har JVM-dækkende omfang. Hvis samtidige arbejdsbelastninger kræver forskellige SOCKS-versioner, må du ikke skifte den frem og tilbage omkring individuelle anmodninger. Brug i stedet en klientgrænseflade, der understøtter det krævede valg pr. forbindelse. Privat setV4-refleksion fra gamle JDK-eksempler er ikke den understøttede konfigurationsgrænseflade.

Relaterede artikler