FTP လော့ဂ်အင်သည် ထိန်းချုပ်မှုချိတ်ဆက်မှုကို အသုံးပြုသည်။ ထို့နောက် ဖိုလ်ဒါစာရင်း သို့မဟုတ် ဒေါင်းလုဒ်အတွက် ဒေတာချိတ်ဆက်မှု လိုအပ်ပြီး SOCKS မှတစ်ဆင့် လော့ဂ်အင်အောင်မြင်သော်လည်း မအောင်မြင်နိုင်ပါ။

ပထမဦးစွာ passive သို့မဟုတ် active mode ကို ဖော်ထုတ်ပါ။ passive mode တွင် client သည် FTP ဆာဗာပေးသော လိပ်စာနှင့် ပို့တ်သို့ ချိတ်ဆက်မှုအသစ် ဖွင့်သည်။ ထိုချိတ်ဆက်မှုလည်း ရည်ရွယ်ထားသော proxy လမ်းကြောင်း လိုအပ်သည်။

Ruby socket ပေါင်းစည်းမှု

Ruby ၏ Net::FTP API သည် ၎င်း၏ ချိတ်ဆက်မှုနှင့် passive mode အပြုအမူကို မှတ်တမ်းတင်ထားသည်။ SOCKS ပေါင်းစည်းမှုသည် ထိန်းချုပ်မှုနှင့် ဒေတာလမ်းကြောင်း နှစ်ခုစလုံး အသုံးပြုသော socket ဖန်တီးမှုကို လွှမ်းခြုံရမည်။ အခြားနေရာရှိ HTTP client ၏ proxy ဆက်တင်သည် ၎င်းတို့ကို ပြင်ဆင်မပေးပါ။

ပေါင်းစည်းမှုသည် socket အပြုအမူကို ကမ္ဘာလုံးဆိုင်ရာ ပြောင်းလဲပါက ၎င်း၏ thread သက်ရောက်မှုအတိုင်းအတာကို ပြန်လည်စစ်ဆေးပါ။ လွှဲပြောင်းမှုတစ်ခုကို ဝိုင်းရံထားသော block သည် အခြား thread များကို မျှဝေထားသော အခြေအနေ ပြောင်းလဲမှုများမှ ခွဲထုတ်နိုင်မည်မဟုတ်ပါ။

ပံ့ပိုးသူသည် static endpoint ကို ကမ်းလှမ်းနိုင်သော်လည်း ၎င်းသည် ဝန်ဆောင်မှုလက္ခဏာဖြစ်ပြီး SOCKS ၏ အထွေထွေလိုအပ်ချက် မဟုတ်ပါ။ သီးခြားချိတ်ဆက်မှုများသည် မတူညီသော ထွက်ပေါက်များ အသုံးပြုနိုင်သည့်နေရာတွင် FTP ဆာဗာသည် ၎င်း၏ ဒေတာချိတ်ဆက်မှုကို အတည်ပြုပြီးသော ထိန်းချုပ်မှုချိတ်ဆက်မှုနှင့် မည်သို့ဆက်စပ်သည်ကို စစ်ဆေးပါ။

ရောက်ရှိသည့်အဆင့်၊ mode နှင့် ဒေတာ endpoint ကို အထောက်အထားများ ဖယ်ရှားပြီး မှတ်တမ်းတင်ပါ။ ၎င်းသည် ပိတ်ဆို့ထားသော ဒေတာလမ်းကြောင်းကို proxy လော့ဂ်အင်မအောင်မြင်မှုနှင့် ခွဲခြားပေးသည်။

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