নন ব্লকিং সকেট কি?
নন ব্লকিং সকেট কি?

ভিডিও: নন ব্লকিং সকেট কি?

ভিডিও: নন ব্লকিং সকেট কি?
ভিডিও: ইনসুলেটর কত প্রকার ও কি কি? Types of Insulator 2024, মে
Anonim

অ - ব্লকিং সকেট . এই সমস্যার সমাধান বলা হয় " অ - ব্লকিং সকেট ডিফল্টরূপে, TCP সকেট আছে " ব্লক করা " মোড। উদাহরণস্বরূপ, যখন আপনি একটি স্ট্রিম থেকে পড়ার জন্য recv() কল করেন, তখন দূরবর্তী সাইট থেকে অন্তত এক বাইট ডেটা পড়া না হওয়া পর্যন্ত নিয়ন্ত্রণ আপনার প্রোগ্রামে ফেরত দেওয়া হয় না।

তদনুসারে, ব্লকিং এবং নন ব্লকিং সকেট কি?

ভিতরে ব্লক করা মোড, recv, পাঠান, সংযোগ করুন (শুধুমাত্র TCP) এবং গ্রহণ করুন (শুধুমাত্র TCP) সকেট API কল হবে ব্লক অনুরোধকৃত কর্ম সঞ্চালিত না হওয়া পর্যন্ত অনির্দিষ্টকালের জন্য। ভিতরে অ - ব্লক করা মোড, এই ফাংশন অবিলম্বে ফিরে. ইচ্ছা নির্বাচন করুন ব্লক যতক্ষন না সকেট তৈরি.

কেউ জিজ্ঞাসা করতে পারে, সকেটগুলি কি ডিফল্টরূপে ব্লক হচ্ছে? দ্বারা ডিফল্ট , TCP সকেট একটি মধ্যে স্থাপন করা হয় ব্লক করা মোড. এর মানে হল যে কিছু নির্দিষ্ট অপারেশন সম্পূর্ণ না হওয়া পর্যন্ত নিয়ন্ত্রণটি আপনার প্রোগ্রামে ফিরে আসে না।

এই বিষয়ে, আপনি কিভাবে একটি নন ব্লকিং সকেট তৈরি করবেন?

চিহ্নিত করা a সকেট হিসাবে অ - ব্লক করা , আমরা fcntl সিস্টেম কল ব্যবহার করি। এখানে একটি উদাহরণ: int flags = guard(fcntl(socket_fd, F_GETFL), "ফাইল পতাকা পেতে পারেনি"); guard(fcntl(socket_fd, F_SETFL, পতাকা | O_NONBLOCK), "পারল না সেট ফাইল পতাকা");

সকেট ব্লকিং কি?

ক সকেট হতে পারে " ব্লক মোড "বা" অব্লকিং মোড এর কার্যাবলী সকেট ভিতরে ব্লক করা (বা সিঙ্ক্রোনাস) মোড যতক্ষণ না তারা তাদের কাজ শেষ করতে পারে ততক্ষণ ফিরে আসবেন না। এই বলা হয় ব্লক করা কারন সকেট যার ফাংশন কল করা হয়েছে কিছুই করতে পারে না - ব্লক করা হয় - যতক্ষণ না কল ফিরে আসে।

প্রস্তাবিত: