SOCKS5-poartfjilden binne twa tekenleaze bytes yn netwurk-bytefolchoarder: de meast wichtige byte komt earst. Yn Go kodearje jo in al falidearre uint16 direkt:

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

Ymportearje encoding/binary. Foar poarte 1080 binne de resultearjende heksadesimale bytes 04 38. Foar poarte 4 binne se 00 04; in liedende nul is diel fan it fjild mei fêste breedte.

As de ynfier begjint as in grutter hiel getal of in tekenrige, falidearje dan syn numerike berik foardat jo it nei uint16 konvertearje. Konverzje kin hege bits fuortsmite ynstee fan in wearde bûten berik te melden.

Yn in SOCKS5-antwurd serialisearje jo BND.PORT, it bûne poartfjild fan 'e tsjinner. Kopiearje de frege bestimmingspoarte net yn dat fjild allinnich om't beide twa bytes ynnimme. Pleats it kodearre fjild nei it adres fan it antwurd, waans lingte fan ATYP ôfhinket.

Relatearre artikelen