আমি এটি বুঝতে পেরে যখন কোনও ক্লায়েন্ট কোনও সংযোগের অনুরোধ করে তখনই এটি ঘটে:
- সার্ভারটি একটি নির্দিষ্ট পোর্ট নম্বরে আবদ্ধ থাকবে। পোর্ট নম্বর সর্বদা শ্রবণ প্রক্রিয়াতে আবদ্ধ। যেহেতু কেবল সার্ভারই আগত সংযোগগুলি শুনছে, তাই আমাদের ক্লায়েন্টের পাশে বাঁধাইয়ের দরকার নেই
- সার্ভারটি সেই পোর্ট নম্বরটিতে লিজইনিগ রাখবে।
- ক্লায়েন্ট একটি
connect()
অনুরোধ প্রেরণ করবে । - সার্ভারটি ব্যবহার করে অনুরোধটি গ্রহণ করবে
accept()
। সার্ভার ক্লায়েন্টের অনুরোধটি গ্রহণ করার সাথে সাথে কার্নেলটি সার্ভারের জন্য আরও একটি এলোমেলো বন্দর নম্বর বরাদ্দ করেsend()
এবংreceive()
যেহেতু সার্ভারে একই পোর্ট নম্বরটি শ্রবণ করার পাশাপাশি প্রেরণের জন্য ব্যবহার করা যায় না, এবং পূর্ববর্তী পোর্টটি এখনও রয়েছে নতুন সংযোগের জন্য শুনছি
সমস্ত দেওয়া হয়েছে, ক্লায়েন্ট কোন পোর্টটি পাচ্ছে তা সার্ভার কীভাবে আবিষ্কার করবে? আমি জানি ক্লায়েন্টটি সোর্স পোর্ট এবং গন্তব্য পোর্ট সহ টিসিপি বিভাগগুলি প্রেরণ করবে, তাই সার্ভারটি সেগমেন্টের উত্স বন্দরটিকে তার গন্তব্য পোর্ট হিসাবে ব্যবহার করবে, কিন্তু সার্ভারটি সেই পোর্টটি সম্পর্কে জানতে কী ফাংশনটি কল করবে? এটা কি accept()
?