Java DatagramSocket နှင့် SOCKS5 UDP ပြန်လွှဲပို့ခြင်း
TCP ချိတ်ဆက်မှုများ SOCKS ကို အသုံးပြုနေပြီးဖြစ်သော်လည်း Java UDP socket သည် SOCKS5 UDP အကောင်အထည်ဖော်မှု ဘာကြောင့် လိုအပ်သည်ကို နားလည်ပါ။
သင့် Java HTTP တောင်းဆိုချက်သည် SOCKS မှတစ်ဆင့် အလုပ်လုပ်သော်လည်း UDP လုပ်ဆောင်ချက်တစ်ခုက ဒေတာစီးကြောင်းကို တိုက်ရိုက် ပို့နေဆဲ သို့မဟုတ် မအောင်မြင်ပါ။ JVM ၏ SOCKS ဂုဏ်သတ္တိများ သတ်မှတ်ခြင်းက DatagramSocket ကို SOCKS5 UDP အကောင်အထည်ဖော်မှု မပေးပါ။
DatagramSocket API သည် ကွန်ရက် အဆုံးမှတ်များသို့ လိပ်စာပေးထားသော ဒေတာဂရမ်များကို ပို့ပြီး လက်ခံပါသည်။ ၎င်း၏ connect() နည်းလမ်းသည် ထို socket အတွက် အဖော်ကို ရွေးချယ်ပါသည်။ ၎င်းသည် အဖော်နှင့် SOCKS ညှိနှိုင်းမှု မပြုလုပ်ပါ။
SOCKS5 UDP လမ်းကြောင်းတွင် အပိုအလုပ်ရှိသည်
SOCKS5 သည် TCP ထိန်းချုပ်ချိတ်ဆက်မှုအပေါ် တည်ဆောက်ထားသော UDP ဆက်စပ်မှုကို သတ်မှတ်ပါသည်။ ထို့နောက် client သည် proxy ပေးသော ပြန်လွှဲပို့လိပ်စာနှင့် ထုပ်ပိုးထားသော ဒေတာဂရမ်များကို ဖလှယ်ပါသည်။ ထုပ်ပိုးထားသော မက်ဆေ့ချ်တစ်ခုစီက ၎င်း၏ ဦးတည်ရာကို ဖော်ပြပါသည်။ client အကောင်အထည်ဖော်မှုသည် ထို ဘောင်ခတ်မှုနှင့် ထိန်းချုပ်ချိတ်ဆက်မှု၏ သက်တမ်းကို ကိုင်တွယ်ရမည်။
သာမန် UDP socket ကို proxy ၏ TCP နားထောင်သည့် ပေါ်တ်သို့ ချိန်ညှိခြင်းက ထို အဆင့်များကို ကျော်သွားပါသည်။ သင့် application ၏ ကုန်ကြမ်း ဒေတာဂရမ်များကို ထို လိပ်စာသို့ ပို့ခြင်းသည် ဆက်စပ်မှုကို အစားထိုးခြင်း မဟုတ်ပါ။
SOCKS5 UDP ပြန်လွှဲပို့ခြင်းကို ရှင်းလင်းစွာ ပံ့ပိုးသော library သို့မဟုတ် application လုပ်ဆောင်ချက်ကို ရွေးပြီး server ကလည်း ပံ့ပိုးကြောင်း အတည်ပြုပါ။ SOCKS ပံ့ပိုးမှုကို ကြော်ငြာသော library သည် TCP CONNECT ကိုသာ အကောင်အထည်ဖော်နိုင်ပါသည်။ ပရိုတိုကော သတ်မှတ်ချက်သည် ထို အမိန့်များကို ခွဲခြားပါသည်။
UDP ပြန်လွှဲပို့မှုတွင်လည်း အသုံးပြုနိုင်သော လမ်းကြောင်း လိုအပ်သည်
proxy သို့ အောင်မြင်သော TCP ချိတ်ဆက်မှုသည် ထိန်းချုပ်လမ်းကြောင်းကိုသာ တည်ဆောက်ပါသည်။ မီးတံတိုင်းများ သို့မဟုတ် NAT အပြုအမူသည် ပြန်လွှဲပို့မှုသို့ ပို့သော ဒေတာဂရမ်များကို အနှောင့်အယှက် ဖြစ်စေနိုင်ဆဲဖြစ်သည်။ application ဦးတည်ရာ အော့ဖ်လိုင်းဖြစ်သည်ဟု ကောက်ချက်မချမီ ပြန်ရသော ပြန်လွှဲပို့ အဆုံးမှတ်နှင့် ပြန်လွှဲပို့ အမှားတစ်ခုခုကို စုဆောင်းပါ။
နောက်ဆုံးအနေဖြင့် SOCKS သယ်ယူပို့ဆောင်မှု ပံ့ပိုးမှုသည် UDP သို့ ပို့ဆောင်မှု အာမခံချက် မထည့်ပါ။ လမ်းကြောင်း ပြောင်းပြီးနောက်တွင်လည်း သင့် application ၏ ကိုယ်ပိုင် အချိန်သတ်မှတ်ချက်များ၊ ဆုံးရှုံးမှု ကိုင်တွယ်မှုနှင့် မက်ဆေ့ချ် အရွယ်အစား ကန့်သတ်ချက်များ သက်ရောက်နေဆဲဖြစ်သည်။