កំណត់រចនាសម្ព័ន្ធ libcurl handle សម្រាប់ការដោះស្រាយឈ្មោះម៉ាស៊ីន SOCKS5
ប្រើ CURLPROXY_SOCKS5_HOSTNAME នៅលើ handle ផ្ទេរទិន្នន័យ ដើម្បីដោះស្រាយគោលដៅតាមរយៈប្រូកស៊ី។
នៅក្នុងការចាប់ផ្តើម 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 ជំនួសវិញ ដោះស្រាយវានៅលើ client ដែលអាចប្រើទិដ្ឋភាព DNS របស់បណ្តាញផ្សេង។ client HTTP C++ ដែលប្រើ libcurl មិនត្រូវការ handshake SOCKS ផ្ទាល់ខ្លួន គ្រាន់តែដើម្បីជ្រើសផ្លូវនេះទេ។ សម្រាប់ចំណុចបញ្ចប់សាធារណៈដែលបានអនុញ្ញាត, បញ្ជីប្រូកស៊ី SOCKS5 ផ្តល់បេក្ខជនម៉ាស៊ីន និងច្រក ដើម្បីជំនួសអ្នកស្តាប់ loopback ជាឧទាហរណ៍។
តម្លៃ CURLOPT_NOPROXY ទទេ ធ្វើឱ្យការសាកល្បងប្រូកស៊ីមានចេតនា។ រក្សាការរំលងដែលមានបំណង នៅពេលសម្របវាទៅគោលនយោបាយធម្មតារបស់កម្មវិធី។ ជម្រើសទាំងនេះប៉ះពាល់ដល់ handle នេះ; បណ្ណាល័យ និងរន្ធផ្សេងទៀតក្នុងដំណើរការមិនទទួលមរតកពួកវាទេ។
ពិនិត្យតម្លៃត្រឡប់នៃការកំណត់ជម្រើស និងការផ្ទេរ តាមរយៈការគ្រប់គ្រងកំហុសរបស់កម្មវិធី។ ការបរាជ័យក្នុងការឈានដល់ ឬចរចាជាមួយ SOCKS អាចកើតឡើងមុនពេលឆ្លើយតប HTTP ណាមួយ ដូច្នេះវាមិនផ្តល់លេខកូដស្ថានភាពគេហទំព័រទេ។
ព័ត៌មានសម្គាល់ប្រូកស៊ីដែលត្រូវការ ប្រើការកំណត់ផ្ទៀងផ្ទាត់ប្រូកស៊ីដែលគាំទ្រ និងយន្តការសម្ងាត់ ដោយឡែកពីការចូលគេហទំព័រ។ រក្សាការផ្ទៀងផ្ទាត់ TLS ឱ្យដំណើរការ៖ ការបើកការតភ្ជាប់តាម SOCKS មិនបង្កើតអត្តសញ្ញាណសេវា HTTPS ទេ។