अनुप्रयोगको विद्यमान libcurl इनिसियलाइजेसन र easy-handle जीवनचक्रभित्र:

curl_easy_setopt(handle, CURLOPT_URL, "https://example.com/");
curl_easy_setopt(handle, CURLOPT_PROXY, "127.0.0.1:1080");
curl_easy_setopt(handle, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_easy_setopt(handle, CURLOPT_NOPROXY, "");
curl_easy_setopt(handle, CURLOPT_CONNECTTIMEOUT, 5L);
curl_easy_setopt(handle, CURLOPT_TIMEOUT, 15L);

CURLPROXY_SOCKS5_HOSTNAME गन्तव्यको होस्टनाम SOCKS मार्गबाट पठाउँछ. CURLPROXY_SOCKS5 यसको सट्टा यसलाई क्लाइन्टमा रिजोल्भ गर्छ, जसले अर्को नेटवर्कको DNS दृश्य प्रयोग गर्न सक्छ। libcurl प्रयोग गर्ने C++ HTTP क्लाइन्टलाई यो मार्ग छान्न मात्र आफ्नै SOCKS ह्यान्डशेक आवश्यक पर्दैन। अनुमत सार्वजनिक एन्डपोइन्टका लागि, SOCKS5 प्रोक्सी सूची उदाहरणात्मक loopback सुन्नेलाई प्रतिस्थापन गर्न होस्ट र पोर्टका उम्मेदवार प्रदान गर्छ।

खाली CURLOPT_NOPROXY मानले प्रोक्सी परीक्षणलाई जानाजान बनाउँछ। सामान्य अनुप्रयोग नीतिमा मिलाउँदा अभिप्रेत बाइपासहरू कायम राख्नुहोस्। यी विकल्पहरूले यो ह्यान्डललाई असर गर्छन्; प्रक्रियाका अन्य लाइब्रेरी र सकेटहरूले तिनीहरूलाई वंशानुगत पाउँदैनन्।

विकल्प सेट गर्ने र ट्रान्सफरका रिटर्न मानहरू अनुप्रयोगको त्रुटि ह्यान्डलिङमार्फत जाँच्नुहोस्। SOCKS पुग्न वा यससँग वार्ता गर्न असफल हुनु कुनै पनि HTTP प्रतिक्रियाअघि हुन सक्छ, त्यसैले यसले वेबसाइट स्थिति कोड दिँदैन।

आवश्यक प्रोक्सी प्रमाणहरूले वेबसाइट लगइनबाट अलग, समर्थित प्रोक्सी प्रमाणीकरण सेटिङ र गोप्य संयन्त्र प्रयोग गर्छन्। TLS प्रमाणीकरण सक्रिय राख्नुहोस्: SOCKS मार्फत जडान खोल्दा HTTPS सेवाको पहिचान स्थापित हुँदैन।

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