मान्य प्रोक्सी ठेगानाले हातले लेखिएको SOCKS सन्देशलाई मान्य बनाउँदैन। C वा C++ struct पठाउँदा प्रोटोकलले कहिल्यै नमागेको प्याडिङ वा होस्ट-क्रमका पूर्णाङ्कहरू पठाउन सक्छ।

SOCKS5 डोमेन-नाम CONNECT अनुरोधका लागि, विधि वार्ता र छानिएको कुनै पनि प्रमाणीकरणपछि यो क्रम स्पष्ट रूपमा सिरियलाइज गर्नुहोस्:

  1. संस्करण, आदेश, आरक्षित बाइट र ठेगाना प्रकार
  2. डोमेन लम्बाइ र डोमेन बाइटहरू
  3. नेटवर्क बाइट क्रममा दुई-बाइट गन्तव्य पोर्ट

ठेगानाका लम्बाइहरू SOCKS संस्करण र ठेगाना प्रकारमा निर्भर गर्छन्। स्थिर चौडाइका सङ्ख्यात्मक फिल्डलाई तिनको निर्दिष्ट प्रतिनिधित्व चाहिन्छ; डोमेन स्ट्रिङको आफ्नै लम्बाइ इन्कोडिङ हुन्छ। C स्ट्रिङ टर्मिनेटर वायर सन्देशमा शून्य थप्ने सामान्य निर्देश होइन।

कार्यान्वयनको छोटो बाटोजाँच्नुपर्ने समस्या
8-बिट पोइन्टरमार्फत 32-बिट मान तोक्नेयसले चारै बाइट उत्सर्जन गर्दैन
बफरलाई ठूलो पूर्णाङ्क पोइन्टरमा कास्ट गर्नेसन्तुलन र बाइट क्रम अझै व्यवस्थापन गर्नुपर्छ
एक पढाइ वा लेखाइ एक सन्देश हो भनी मान्नेTCP ले प्रोटोकल क्रमको केही भाग मात्र स्थानान्तरण गर्न सक्छ

प्रत्येक फिल्डलाई अभिप्रेत गन्तव्यसँग तुलना गर्नुहोस् र आंशिक I/O व्यवस्थापन गर्नुहोस्। दुई बाइट प्राप्त गर्दा पूरै जवाफ आइपुग्यो भन्ने प्रमाण हुँदैन। ती सीमाहरू जाँच्दा विकृत अनुरोधलाई सही रूपमा वर्णन गरिएको जडान अस्वीकार गर्ने सर्भरबाट छुट्याउन सकिन्छ।

सम्बन्धित लेखहरू