Asio TCP सॉकेटला SOCKS5 श्रोत्याशी जोडल्याने एकच टप्पा पूर्ण होतो: त्या श्रोत्याशी होणारा TCP संपर्क. ते प्रॉक्सीला अंतिम सर्व्हरशी जोडण्यास सांगत नाही. परवानगी असलेल्या सार्वजनिक लक्ष्य चाचणीसाठी SOCKS5 प्रॉक्सी यादी त्या पहिल्या TCP टोकासाठी उमेदवार देते; जोडणी करणाऱ्याने खालील देवाणघेवाण पूर्ण करावीच.

त्यानंतर SOCKS5 जोडणी करणाऱ्याने प्रोटोकॉल देवाणघेवाण चालवावी:

  1. क्लायंटला समर्थित प्रमाणीकरण पद्धतींची यादी असलेले आवृत्ती 5 चे अभिवादन पाठवा.
  2. निवडलेली पद्धत वाचा आणि आवश्यक असल्यास तिची प्रमाणीकरण देवाणघेवाण करा.
  3. गंतव्याचा पत्ता प्रकार, पत्ता व नेटवर्क बाइट क्रमातील पोर्टसह CONNECT पाठवा.
  4. उत्तर वाचा, त्याची आवृत्ती व निकाल कोड तपासा, आणि पूर्ण बदलत्या लांबीचा बद्ध पत्ता व पोर्ट वापरा.
  5. स्थापित स्ट्रीम अनुप्रयोगाच्या प्रोटोकॉलला द्या.

socks5::async_proxy_connect नावाचा सहायक तो सहायक पुरवणाऱ्या SOCKS अंमलबजावणीचा भाग आहे. boost::asio च्या शेजारी त्याचे नाव घेतल्याने तो Asio च्या TCP सॉकेट इंटरफेसचा भाग होत नाही.

TCP वाचन उत्तराचा फक्त काही भाग परत करू शकते. आवश्यक बाइट संख्यांसाठी वाचने एकत्र करा, नंतर उर्वरित लांबी पत्ता-प्रकार क्षेत्रातून निवडा. प्रत्येक सर्व्हर उत्तराची स्थिर IPv4 मांडणी असते असे गृहीत धरू नका.

HTTPS साठी SOCKS CONNECT यशस्वी झाल्यानंतर गंतव्याचे TLS हस्तांदोलन करा, गंतव्याचे SNI व होस्टनाव पडताळणी राखून. केवळ यशस्वी प्रॉक्सी उत्तर वेबसाइटचे प्रमाणीकरण करत नाही.

संपूर्ण सेटअप क्रमभर रद्द करणे व मुदती टिकवा. TCP संपर्क प्रस्थापित होण्याची वेळ संपल्यास पुढील अभिवादन, प्रमाणीकरण व CONNECT देवाणघेवाण अमर्यादित राहतात.

संबंधित लेख