ما هي المقابس التي لا تسد؟
ما هي المقابس التي لا تسد؟

فيديو: ما هي المقابس التي لا تسد؟

فيديو: ما هي المقابس التي لا تسد؟
فيديو: حقيقة الكهرباء التي تخفيها المدارس 2024, شهر نوفمبر
Anonim

عدم - سد مآخذ . حل هذه المشكلة يسمى " عدم - سد مآخذ بشكل افتراضي ، TCP مآخذ يكون في " الحجب "الوضع. على سبيل المثال ، عند استدعاء recv () للقراءة من دفق ، لا يتم إرجاع التحكم إلى برنامجك حتى تتم قراءة بايت واحد على الأقل من البيانات من الموقع البعيد.

وفقًا لذلك ، ما هو المقبس المحجوب وغير المسدود؟

في الحجب الوضع ، الاستلام ، الإرسال ، الاتصال (TCP فقط) والقبول (TCP فقط) قابس كهرباء سوف مكالمات API منع إلى أجل غير مسمى حتى يتم تنفيذ الإجراء المطلوب. في عدم - الحجب الوضع ، تعود هذه الوظائف على الفور. حدد الإرادة منع حتى ال قابس كهرباء جاهز.

قد يتساءل المرء أيضًا ، هل المقابس تمنع بشكل افتراضي؟ بواسطة إفتراضي ، TCP مآخذ توضع في الحجب الوضع. هذا يعني أنه لا يتم إرجاع عنصر التحكم إلى برنامجك حتى تكتمل عملية معينة.

فيما يتعلق بهذا ، كيف تصنع مقبسًا غير مسدود؟

لتمييز أ قابس كهرباء كما عدم - الحجب ، نستخدم استدعاء نظام fcntl. إليك مثال: int flags = guard (fcntl (socket_fd، F_GETFL)، "تعذر الحصول على أعلام الملفات")؛ حارس (fcntl (socket_fd، F_SETFL، flags | O_NONBLOCK) ، "تعذر يضع أعلام الملفات ") ؛

ما هو سد المقبس؟

أ قابس كهرباء يمكن أن يكون في " وضع الحجب أو "nonblocking الوضع . "وظائف مآخذ في الحجب (أو متزامن) الوضع لا تعود حتى يتمكنوا من إكمال عملهم. هذا يسمي الحجب بسبب ال قابس كهرباء الذي تم استدعاء وظيفته لا يمكنه فعل أي شيء - محظور - حتى ترجع المكالمة.

موصى به: