Đối với phần triển khai socket của OpenJDK 25, hãy chọn SOCKS4 bằng thuộc tính socksProxyVersion. Có thể cung cấp thuộc tính này khi khởi chạy ứng dụng:

java -DsocksProxyVersion=4 YourApplication

Ứng dụng vẫn có thể cung cấp điểm cuối proxy một cách rõ ràng:

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

Các địa chỉ là chỗ giữ chỗ. Một địa chỉ chưa xác thực từ danh sách proxy SOCKS4 có thể điền máy chủ và cổng proxy cho một bài kiểm tra IPv4 công khai được phép; hãy dùng địa chỉ IPv4 và cổng đích thực tế riêng. Đoạn này mở và đóng luồng TCP; một giao thức ứng dụng sẽ dùng luồng đã kết nối bên trong khối.

Phần triển khai của OpenJDK 25 kiểm tra thuộc tính phiên bản ngay cả khi hàm dựng đã nhận một Proxy SOCKS rõ ràng thông thường. Bản thân đối tượng Proxy công khai chứa kiểu và địa chỉ, không phải trường phiên bản SOCKS cho từng đối tượng.

Thuộc tính phiên bản có phạm vi toàn JVM. Nếu các khối lượng công việc đồng thời yêu cầu các phiên bản SOCKS khác nhau, đừng bật tắt nó qua lại quanh từng yêu cầu riêng lẻ. Thay vào đó, hãy dùng giao diện máy khách hỗ trợ lựa chọn cần thiết cho mỗi kết nối. Phản chiếu setV4 riêng tư từ các ví dụ JDK cũ không phải là giao diện cấu hình được hỗ trợ.

Bài viết liên quan