เข้ารหัสพอร์ต SOCKS5 ใน Go เป็นไบต์ big-endian สองไบต์
ใช้ตัวช่วย binary.BigEndian ของ Go สำหรับฟิลด์พอร์ต SOCKS5 แทนการตัดสตริงไบนารีที่มีความยาวผันแปร
ฟิลด์พอร์ต 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