Go-তে SOCKS5 পোর্ট দুটি বিগ-এন্ডিয়ান বাইট হিসেবে এনকোড করুন
পরিবর্তনশীল দৈর্ঘ্যের বাইনারি স্ট্রিং কাটার বদলে 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-এর উপর নির্ভর করে।