Selecionar SOCKS4 no OpenJDK 25 com socksProxyVersion
Use a propriedade de versão documentada com um endpoint SOCKS explícito no OpenJDK 25 e considere o escopo da propriedade em toda a JVM.
Para a implementação de sockets do OpenJDK 25, selecione SOCKS4 com a propriedade socksProxyVersion. Ela pode ser fornecida ao iniciar a aplicação:
java -DsocksProxyVersion=4 YourApplicationA aplicação ainda pode fornecer o endpoint do proxy explicitamente:
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);
}Os endereços são marcadores de posição. Um endereço não autenticado da lista de proxies SOCKS4 pode preencher o host e a porta do proxy para um teste IPv4 público permitido; use o endereço IPv4 e a porta de destino reais separadamente. Este fragmento abre e fecha o fluxo TCP; um protocolo de aplicação usaria o fluxo conectado dentro do bloco.
A implementação do OpenJDK 25 verifica a propriedade de versão mesmo quando o construtor recebeu um Proxy SOCKS explícito comum. O objeto Proxy público contém em si um tipo e um endereço, não um campo de versão SOCKS por objeto.
A propriedade de versão tem escopo em toda a JVM. Se cargas de trabalho concorrentes exigirem versões SOCKS diferentes, não a alterne de um lado para o outro em torno de solicitações individuais. Em vez disso, use uma interface de cliente que suporte a seleção necessária por conexão. A reflexão privada setV4 de exemplos antigos do JDK não é a interface de configuração suportada.