အပလီကေးရှင်း၏ လက်ရှိ 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 နားထောင်သူကို အစားထိုးရန် host နှင့် port ကိုယ်စားလှယ်များကို ပေးသည်။

ကွက်လပ်ဖြစ်သော CURLOPT_NOPROXY တန်ဖိုးက ပရောက်စီစမ်းသပ်မှုကို ရည်ရွယ်ချက်ရှိစေသည်။ ပုံမှန် အပလီကေးရှင်းမူဝါဒနှင့် ချိန်ညှိသည့်အခါ ရည်ရွယ်ထားသော ကျော်လွှားမှုများကို ထိန်းသိမ်းပါ။ ဤရွေးချယ်မှုများသည် ဤ handle ကို သက်ရောက်သည်; လုပ်ငန်းစဉ်အတွင်းရှိ အခြားစာကြည့်တိုက်များနှင့် socket များက ၎င်းတို့ကို အမွေမခံပါ။

ရွေးချယ်မှုသတ်မှတ်ခြင်းနှင့် လွှဲပြောင်းမှု၏ ပြန်လာသောတန်ဖိုးများကို အပလီကေးရှင်း၏ အမှားကိုင်တွယ်မှုဖြင့် စစ်ဆေးပါ။ SOCKS သို့ ရောက်ရှိခြင်း သို့မဟုတ် ၎င်းနှင့် ညှိနှိုင်းခြင်း မအောင်မြင်မှုသည် မည်သည့် HTTP တုံ့ပြန်မှုမတိုင်မီမဆို ဖြစ်နိုင်သည်၊ ထို့ကြောင့် ၎င်းသည် ဝဘ်ဆိုက် အခြေအနေကုဒ်ကို မပေးပါ။

လိုအပ်သော ပရောက်စီ အထောက်အထားများသည် ဝဘ်ဆိုက်လော့ဂ်အင်နှင့် သီးခြား၊ ပံ့ပိုးထားသော ပရောက်စီ စစ်မှန်ကြောင်းအထောက်အထား ဆက်တင်များနှင့် လျှို့ဝှက်ချက် ယန္တရားကို အသုံးပြုသည်။ TLS စစ်ဆေးမှုကို ဖွင့်ထားပါ: SOCKS မှတစ်ဆင့် ချိတ်ဆက်မှုဖွင့်ခြင်းသည် HTTPS ဝန်ဆောင်မှု၏ အထောက်အထားကို မတည်ဆောက်ပါ။

ဆက်စပ်ဆောင်းပါးများ