Is dhá bheart gan síniú iad réimsí calafoirt SOCKS5 in ord beart líonra: tagann an beart is suntasaí ar dtús. I Go, ionchódaigh uint16 atá bailíochtaithe cheana go díreach:

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

Iompórtáil encoding/binary. I gcás calafoirt 1080, is iad na bearta heicsidheachúla a thagann astu 04 38. I gcás calafoirt 4, is iad 00 04; tá nialas tosaigh mar chuid den réimse leithead seasta.

Má thosaíonn an t-ionchur mar shlánuimhir níos mó nó mar theaghrán, bailíochtaigh a raon uimhriúil sula ndéanann tú é a thiontú go uint16. Féadann an tiontú na giotáin arda a scriosadh seachas luach lasmuigh den raon a thuairisciú.

I bhfreagra SOCKS5, sraitheach BND.PORT, réimse calafoirt cheangailte an fhreastalaí. Ná cóipeáil an calafort cinn scríbe a iarradh isteach sa réimse sin díreach toisc go nglacann an dá cheann dhá bheart. Cuir an réimse ionchódaithe tar éis sheoladh an fhreagra, a bhfuil a fhad ag brath ar ATYP.

Ailt ghaolmhara