עבור מימוש הסוקטים של OpenJDK 25, בחרו ב-SOCKS4 באמצעות המאפיין socksProxyVersion. ניתן לספק אותו בעת הפעלת היישום:

java -DsocksProxyVersion=4 YourApplication

היישום עדיין יכול לספק את נקודת הקצה של ה-proxy באופן מפורש:

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

הכתובות הן מצייני מקום. כתובת שאינה מאומתת מרשימת ה-proxy של SOCKS4 יכולה למלא את המארח והפורט של ה-proxy עבור בדיקת IPv4 ציבורית מותרת; השתמשו בכתובת ה-IPv4 וביציאה של היעד בפועל בנפרד. קטע זה פותח וסוגר את זרם ה-TCP; פרוטוקול יישום ישתמש בזרם המחובר בתוך הבלוק.

המימוש של OpenJDK 25 בודק את מאפיין הגרסה גם כאשר הבנאי קיבל אובייקט Proxy מסוג SOCKS מפורש רגיל. אובייקט ה-Proxy הציבורי עצמו מכיל סוג וכתובת, ולא שדה גרסת SOCKS לכל אובייקט.

למאפיין הגרסה יש היקף ברמת ה-JVM כולו. אם עומסי עבודה מקבילים דורשים גרסאות SOCKS שונות, אל תעברו אותו קדימה ואחורה סביב בקשות בודדות. השתמשו במקום זאת בממשק לקוח שתומך בבחירה הנדרשת לכל חיבור. השתקפות setV4 פרטית מדוגמאות JDK ישנות אינה ממשק התצורה הנתמך.

מאמרים קשורים