Go තුළ SOCKS5 තොටස් දෙකක් big-endian බයිට් ලෙස කේතනය කිරීම
විචල්ය දිගැති ද්විමය අකුරු පටිය කැපීම වෙනුවට SOCKS5 තොට ක්ෂේත්ර සඳහා Go හි binary.BigEndian සහායක භාවිත කරන්න.
SOCKS5 තොට ක්ෂේත්ර ජාල බයිට් අනුපිළිවෙලින් ලකුණු රහිත බයිට් දෙකකි: වඩාත් වැදගත් බයිටය පළමුව එයි. Go තුළ, දැනටමත් වලංගු කළ uint16 සෘජුවම කේතනය කරන්න:
var field [2]byte
binary.BigEndian.PutUint16(field[:], port)encoding/binary ආයාත කරන්න. 1080 තොට සඳහා, ලැබෙන ෂඩ්දශම බයිට 04 38 වේ. 4 තොට සඳහා, ඒවා 00 04 වේ; ප්රමුඛ ශුන්යය ස්ථිර පළල ක්ෂේත්රයේ කොටසකි.
ආදානය විශාල නිඛිලයක් හෝ අකුරු පටියක් ලෙස ආරම්භ වන්නේ නම්, uint16 බවට පරිවර්තනය කිරීමට පෙර එහි සංඛ්යා පරාසය වලංගු කරන්න. පරිවර්තනය පරාසයෙන් පිටත අගයක් වාර්තා කිරීම වෙනුවට ඉහළ බිටු ඉවත දැමිය හැකිය.
SOCKS5 ප්රතිචාරයක, BND.PORT අනුක්රමණය කරන්න, එනම් සේවාදායකයේ බැඳුණු තොට ක්ෂේත්රය. දෙකම බයිට් දෙකක් ගන්නා නිසා පමණක් ඉල්ලා ඇති ගමනාන්ත තොට එම ක්ෂේත්රයට පිටපත් නොකරන්න. කේතනය කළ ක්ෂේත්රය ප්රතිචාරයේ ලිපිනයෙන් පසුව තබන්න; එහි දිග ATYP මත රඳා පවතී.