FTP লগইন একটি কন্ট্রোল সংযোগ ব্যবহার করে। এরপর ডিরেক্টরি তালিকা বা ডাউনলোডের জন্য ডেটা সংযোগ দরকার, যা SOCKS দিয়ে লগইন সফল হলেও ব্যর্থ হতে পারে।

প্রথমে প্যাসিভ না অ্যাক্টিভ মোড নির্ধারণ করুন। প্যাসিভ মোডে ক্লায়েন্ট FTP সার্ভারের দেওয়া ঠিকানা ও পোর্টে নতুন সংযোগ খোলে। সেই সংযোগেও অভিপ্রেত প্রক্সি পথ দরকার।

Ruby সকেট ইন্টিগ্রেশন

Ruby-র Net::FTP API তার সংযোগ ও প্যাসিভ-মোড আচরণ নথিবদ্ধ করে। SOCKS ইন্টিগ্রেশনকে কন্ট্রোল ও ডেটা—দুই পথেই ব্যবহৃত সকেট তৈরি কভার করতে হবে; অন্য জায়গায় HTTP ক্লায়েন্টের প্রক্সি সেটিং সেগুলো কনফিগার করে না।

ইন্টিগ্রেশন যদি সকেটের আচরণ বিশ্বব্যাপী বদলায়, তার কনকারেন্সি পরিধি পর্যালোচনা করুন। একটি ট্রান্সফারের চারপাশের ব্লক অন্য থ্রেডকে শেয়ার্ড স্টেটের পরিবর্তন থেকে আলাদা করতে পারে না।

প্রোভাইডার স্ট্যাটিক এন্ডপয়েন্ট দিতে পারে, তবে সেটি পরিষেবার বৈশিষ্ট্য, SOCKS-এর সাধারণ শর্ত নয়। যেখানে আলাদা সংযোগ ভিন্ন এক্সিট ব্যবহার করতে পারে, সেখানে FTP সার্ভার তার ডেটা সংযোগকে প্রমাণিত কন্ট্রোল সংযোগের সঙ্গে কীভাবে যুক্ত করে তা দেখুন।

পৌঁছানো ধাপ, মোড ও ডেটা এন্ডপয়েন্ট লিখে রাখুন, ক্রেডেনশিয়াল বাদ দিয়ে। এটি অবরুদ্ধ ডেটা পথকে প্রক্সি লগইন ব্যর্থতা থেকে আলাদা করে।

সম্পর্কিত নিবন্ধ