L-oqsma tal-port SOCKS5 huma żewġ bajts mingħajr sinjal fl-ordni tal-bajts tan-netwerk: l-aktar bajt sinifikanti jiġi l-ewwel. F'Go, ikkodifika uint16 li diġà ġie vvalidat direttament:

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

Importa encoding/binary. Għall-port 1080, il-bajts eżadeċimali li jirriżultaw huma 04 38. Għall-port 4, huma 00 04; iż-żero fil-bidu huwa parti mill-qasam b'wisa' fissa.

Jekk l-input jibda bħala integer akbar jew string, ivvalida l-firxa numerika tiegħu qabel ma tikkonvertih għal uint16. Il-konverżjoni tista' tarmi l-bits għoljin minflok ma tirrapporta valur barra mill-firxa.

F'risposta SOCKS5, serializza BND.PORT, il-qasam tal-port marbut tas-server. Tikkupjax il-port tad-destinazzjoni mitlub f'dak il-qasam sempliċement għax it-tnejn jokkupaw żewġ bajts. Poġġi l-qasam ikkodifikat wara l-indirizz tar-risposta, li t-tul tiegħu jiddependi fuq ATYP.

Artikli relatati