प्रोक्सीमा जोडिएपछि Asio लाई SOCKS5 आदानप्रदान चाहिन्छ
Asio सकेटमाथि SOCKS5 लाई प्रोटोकल स्थिति यन्त्रका रूपमा लिनुहोस्, पूर्ण पठन, प्रमाणित प्रतिक्रिया र CONNECT सफल भएपछि मात्र गन्तव्यको TLS।
Asio TCP सकेटलाई SOCKS5 सुन्नेसँग जोड्नुले एउटा मात्र चरण पूरा गर्छ: त्यो सुन्नेसँगको TCP जडान। यसले प्रोक्सीलाई अन्तिम सर्भरसँग जोड्न भन्दैन। अनुमति प्राप्त सार्वजनिक लक्ष्य परीक्षणका लागि SOCKS5 प्रोक्सी सूची ले त्यो पहिलो TCP अन्त्यबिन्दुका लागि उम्मेदवार दिन्छ; जोड्नेले तलको आदानप्रदान पूरा गर्नैपर्छ।
त्यसपछि SOCKS5 जोड्नेले प्रोटोकल आदानप्रदान चलाउनुपर्छ:
- ग्राहकले समर्थन गर्ने प्रमाणीकरण विधिहरू सूचीबद्ध गर्ने संस्करण 5 को अभिवादन पठाउनुहोस्।
- छानिएको विधि पढ्नुहोस् र आवश्यक पर्दा त्यसको प्रमाणीकरण आदानप्रदान गर्नुहोस्।
- गन्तव्यको ठेगाना प्रकार, ठेगाना र नेटवर्क बाइट क्रमको पोर्टसहित CONNECT पठाउनुहोस्।
- प्रतिक्रिया पढ्नुहोस्, त्यसको संस्करण र नतिजा कोड जाँच्नुहोस्, र पूरै परिवर्तनशील लम्बाइको बाँधिएको ठेगाना र पोर्ट उपभोग गर्नुहोस्।
- स्थापित स्ट्रिमलाई अनुप्रयोगको प्रोटोकलमा सुम्पनुहोस्।
socks5::async_proxy_connect नामको सहायक त्यो सहायक उपलब्ध गराउने SOCKS कार्यान्वयनको हो। boost::asio को छेउमा यसको नाम लिँदा यो Asio को TCP सकेट इन्टरफेसको भाग बन्दैन।
TCP पठनले प्रतिक्रियाको एउटा भाग मात्र फर्काउन सक्छ। आवश्यक बाइट संख्याका लागि पठन जोड्नुहोस्, त्यसपछि बाँकी लम्बाइ ठेगाना-प्रकार क्षेत्रबाट छान्नुहोस्। हरेक सर्भर प्रतिक्रियामा स्थिर IPv4 बनोट हुन्छ भनी नमान्नुहोस्।
HTTPS का लागि SOCKS CONNECT सफल भएपछि गन्तव्यको TLS ह्यान्डसेक गर्नुहोस्, गन्तव्यको SNI र होस्टनाम प्रमाणीकरण कायम राख्दै। मात्र सफल प्रोक्सी प्रतिक्रियाले वेबसाइट प्रमाणित गर्दैन।
सम्पूर्ण सेटअप क्रमभरि रद्दीकरण र समयसीमा कायम राख्नुहोस्। TCP जडान स्थापना गर्ने समय सकिएमा पछिका अभिवादन, प्रमाणीकरण र CONNECT आदानप्रदान असीमित रहन्छन्।