Java SOCKS လိပ်စာရှိ အနုတ်ကိန်းများသည် အနုတ် IP မဟုတ်ပါ
Java byte API ဖြင့် SOCKS လိပ်စာအကွက်များကို ခွဲခြမ်းစိတ်ဖြာသည့်အခါ အမှတ်အသားမဲ့ ပရိုတိုကော်တန်ဖိုးများအဖြစ် ဖတ်ပါ။
Java တွင် byte သည် အမှတ်အသားပါသည်။ ထို့ကြောင့် ဝါယာတန်ဖိုး 217 ရှိသော octet ကို byte အစုအဝေးမှ တိုက်ရိုက်ပုံနှိပ်သောအခါ အနုတ်တန်ဖိုးအဖြစ် မြင်ရနိုင်သည်။ ၎င်းသည် proxy က မမှန်ကန်သော အနုတ် IP လိပ်စာ ပို့လိုက်သည်ဟု မဆိုလိုပါ။
သိမ်းဆည်းထားသော တန်ဖိုးကို အမှတ်အသားမဲ့ ကိန်းပြည့်အဖြစ် ပြောင်းပါ၊ ဥပမာ Byte.toUnsignedInt(value) ဖြင့်၊ သို့မဟုတ် အကွက်ကို ဖတ်နေစဉ် DataInputStream.readUnsignedByte() ကို အသုံးပြုပါ။ ကွန်ရက်အစီအစဉ်ရှိ ပေါက်အတွက် မည်သည့် byte ကိုမဆို အမှတ်အသားပါ ဒသမကိန်းအဖြစ် မသတ်မှတ်ဘဲ မှတ်တမ်းတင်ထားသော နှစ်-byte တန်ဖိုးကို ဖတ်ပါ။
ကိုယ်စားပြုမှုကို ဖရိမ်ဖွဲ့စည်းမှုနှင့် ခွဲခြားပါ။ socket ဖတ်ခြင်းသည် တောင်းဆိုသည်ထက် byte နည်းသည်ကို ပြန်ပေးနိုင်သည်။ အကွက်တစ်ခုလုံးကို ဖတ်ပြီးနောက် SOCKS ဗားရှင်းနှင့် လိပ်စာအမျိုးအစားအလိုက် အနက်ဖွင့်ပါ။ SOCKS5 လိပ်စာများတွင် IPv4 လိပ်စာ၊ IPv6 လိပ်စာ သို့မဟုတ် အရှည်ရှေ့ဆက်ပါသော ဒိုမိန်းအမည် ပါနိုင်သည်။ ပုံသေ လေး-byte ယူဆချက်သည် ထိုပုံစံများအနက် တစ်ခုကိုသာ ဖုံးလွှမ်းသည်။
အနုတ်ဟု ထင်ရသော octet ကို ပြုပြင်ခြင်းသည် ပြသမှုပြဿနာကို ဖြေရှင်းသည်။ သို့သော် မှားသော အော့ဖ်ဆက်မှ စဖတ်ခဲ့သော သို့မဟုတ် လိပ်စာအလယ်တွင် ရပ်သွားသော parser ကို မပြုပြင်ပါ။