የ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 ላይ ይመሰረታል።

ተዛማጅ ጽሑፎች