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 પર આધારિત છે.

સંબંધિત લેખો