SOCKS5 ပေါက်အကွက်များသည် ကွန်ရက်ဘိုက်အစီအစဉ်ဖြင့် အမှတ်အသားမဲ့ ဘိုက်နှစ်ခုဖြစ်သည်။ အရေးအကြီးဆုံး ဘိုက်က ပထမဆုံးလာသည်။ Go တွင် စစ်ဆေးပြီးသား uint16 ကို တိုက်ရိုက် ကုဒ်ပြုလုပ်ပါ။

var field [2]byte
binary.BigEndian.PutUint16(field[:], port)

encoding/binary ကို import လုပ်ပါ။ ပေါက် 1080 အတွက် ရလာသော ဆယ့်ခြောက်လုံးစံ ဘိုက်များသည် 04 38 ဖြစ်သည်။ ပေါက် 4 အတွက် ၎င်းတို့သည် 00 04 ဖြစ်သည်။ ရှေ့သုညသည် ပုံသေအကျယ်အကွက်၏ အစိတ်အပိုင်းဖြစ်သည်။

အဝင်သည် ပိုကြီးသော ကိန်းပြည့် သို့မဟုတ် စာတန်းအဖြစ် စတင်ပါက uint16 သို့ မပြောင်းမီ ၎င်း၏ ကိန်းဂဏန်းအပိုင်းအခြားကို စစ်ဆေးပါ။ ပြောင်းလဲခြင်းသည် အပိုင်းအခြားပြင်ပ တန်ဖိုးကို အစီရင်ခံမည့်အစား မြင့်မားသော ဘစ်များကို လွှင့်ပစ်နိုင်သည်။

SOCKS5 တုံ့ပြန်မှုတွင် BND.PORT ကို စီစဉ်ပါ၊ ဆိုလိုသည်မှာ ဆာဗာ၏ ချိတ်ဆက်ထားသော ပေါက်အကွက် ဖြစ်သည်။ နှစ်ခုစလုံး ဘိုက်နှစ်ခု ယူထားသည်ဟူသော အကြောင်းကြောင့်သာ တောင်းဆိုထားသော ဦးတည်ပေါက်ကို ထိုအကွက်သို့ ကူးယူမထားပါနှင့်။ ကုဒ်ပြုပြီးသား အကွက်ကို တုံ့ပြန်မှု၏ လိပ်စာနောက်တွင် ထားပါ။ ၎င်း၏ အရှည်သည် ATYP အပေါ် မူတည်သည်။

ဆက်စပ်ဆောင်းပါးများ