वैध प्रॉक्सी पत्ता हाताने लिहिलेल्या SOCKS संदेशाला वैध करत नाही. C किंवा C++ struct पाठवल्यास प्रोटोकॉलने कधीही मागितली नसलेली पॅडिंग किंवा होस्ट-क्रमातील पूर्णांक पाठवले जाऊ शकतात.

SOCKS5 डोमेन-नाव CONNECT विनंतीसाठी, पद्धत वाटाघाटी आणि निवडलेल्या कोणत्याही प्रमाणीकरणानंतर हा क्रम स्पष्टपणे सिरिअलाइज करा:

  1. आवृत्ती, कमांड, राखीव बाइट आणि पत्ता प्रकार
  2. डोमेन लांबी आणि डोमेन बाइट्स
  3. नेटवर्क बाइट क्रमात दोन-बाइट गंतव्य पोर्ट

पत्त्यांची लांबी SOCKS आवृत्ती आणि पत्ता प्रकारावर अवलंबून असते. निश्चित रुंदीच्या संख्यात्मक फील्डना त्यांचे निर्दिष्ट प्रतिनिधित्व आवश्यक असते; डोमेन स्ट्रिंगचे स्वतःचे लांबी एन्कोडिंग असते. C स्ट्रिंग टर्मिनेटर वायर संदेशात शून्य जोडण्याची सामान्य सूचना नाही.

अंमलबजावणीतील शॉर्टकटतपासण्याची समस्या
8-बिट पॉइंटरद्वारे 32-बिट मूल्य नियुक्त करणेते चारही बाइट्स उत्सर्जित करत नाही
बफरला मोठ्या पूर्णांक पॉइंटरमध्ये कास्ट करणेसंरेखन आणि बाइट क्रम अजूनही हाताळावा लागतो
एक वाचन किंवा लेखन एक संदेश आहे असे गृहीत धरणेTCP प्रोटोकॉल क्रमाचा फक्त एक भाग हस्तांतरित करू शकते

प्रत्येक फील्डची इच्छित गंतव्याशी तुलना करा आणि आंशिक I/O हाताळा. दोन बाइट्स मिळाल्याने संपूर्ण उत्तर आले आहे हे सिद्ध होत नाही. त्या सीमा तपासल्यास विकृत विनंती योग्यरीत्या वर्णन केलेले कनेक्शन नाकारणाऱ्या सर्व्हरपासून वेगळी करता येते.

संबंधित लेख