SOCKS5 портторун Go тилинде эки 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ке байланыштуу.