Java HTTP sorğunuz SOCKS vasitəsilə işləyir, lakin UDP funksiyası hələ də trafiki birbaşa göndərir və ya uğursuz olur. JVM-in SOCKS xassələrini təyin etmək DatagramSocket üçün SOCKS5 UDP tətbiqi vermir.

DatagramSocket API şəbəkə son nöqtələrinə ünvanlanmış verdiqramları göndərir və qəbul edir. Onun connect() metodu həmin soket üçün həmkar seçir. O, həmkar ilə SOCKS danışıqları aparmır.

SOCKS5 UDP marşrutu əlavə iş tələb edir

SOCKS5 TCP nəzarət bağlantısı üzərində qurulan UDP assosiasiyası müəyyən edir. Sonra müştəri proksinin təqdim etdiyi relay ünvanı ilə qablaşdırılmış verdiqramları mübadilə edir. Hər qablaşdırılmış mesaj öz təyinatını müəyyən edir. Müştəri tətbiqi bu çərçivələməni və nəzarət bağlantısının ömrünü idarə etməlidir.

Adi UDP soketini proksinin TCP dinləmə portuna yönəltmək bu addımları atlayır. Tətbiqinizin xam verdiqramlarını həmin ünvana göndərmək assosiasiyanın əvəzi deyil.

SOCKS5 UDP relay-i açıq şəkildə dəstəkləyən kitabxana və ya tətbiq funksiyası seçin və serverin də onu dəstəklədiyini təsdiqləyin. SOCKS dəstəyini reklam edən kitabxana yalnız TCP CONNECT tətbiq edə bilər. Protokol spesifikasiyası əmrləri fərqləndirir.

UDP relay üçün də istifadə edilə bilən yol lazımdır

Proksiyə uğurlu TCP bağlantısı yalnız nəzarət yolunu qurur. Firewall və ya NAT davranışı relay-ə göndərilən verdiqramlara hələ də mane ola bilər. Tətbiq təyinatının oflayn olduğu qənaətinə gəlməzdən əvvəl qaytarılan relay son nöqtəsini və hər hansı relay xətasını toplayın.

Nəhayət, SOCKS nəqliyyat dəstəyi UDP-yə çatdırılma zəmanəti əlavə etmir. Tətbiqinizin öz taym-autları, itki idarəetməsi və mesaj ölçüsü məhdudiyyətləri marşrut dəyişdikdən sonra da qüvvədə qalır.

Əlaqəli məqalələr