برمجة المقابس:كيف أتعامل مع من الفرقة البيانات

StackOverflow https://stackoverflow.com/questions/589928

  •  09-09-2019
  •  | 
  •  

سؤال

لقد نظرت الى ويكيبيديا الدخول على الخروج من الفرقة البيانات و بقدر ما أفهم, OOB البيانات بطريقة أو بأخرى ترفع علم أكثر أهمية معالجة البيانات العاديين ، ولكن تنتقل في فصل تيار ، والتي عميق يخلط لي.

السؤال الفعلي سيكون (إلى جانب "هلا شرح لي أحدكم ما OOB البيانات؟"):

أنا أكتب unix تطبيق يستخدم مآخذ ضرورة الاستفادة من حدد() و أتساءل ما يجب القيام به مع exceptfds المعلمة ؟ هل أنا بحاجة إلى أن أضع كل ما عندي مآخذ في هذه المعلمة والرد على مثل هذه الأحداث ؟ أو هل أنا مجرد تجاهلها ؟

هل كانت مفيدة؟

المحلول

أعلم أنك قد قررت أن كنت لا تحتاج إلى التعامل مع OOB البيانات ، ولكن هنا هي بعض الأشياء أن نأخذ في الاعتبار إذا كنت من أي وقت مضى هل تهتم OOB...

  • IPv4 لا حقا إرسال OOB البيانات على قناة منفصلة ، أو في أولوية مختلفة.انها مجرد العلم على الحزمة.
  • OOB بيانات محدودة للغاية -- 1 بايت!
  • OOB يمكن أن تكون البيانات الواردة إما مضمنة أو على حدة اعتمادا على خيارات مأخذ التوصيل
  • "استثناء" في إشارة OOB البيانات قد تحدث حتى لو كان القادم قراءة لا تحتوي على OOB البيانات (مكدس شبكة الاتصال على المرسل قد علم أي بالفعل في قائمة الانتظار البيانات ، لذلك الجانب الآخر سوف تعرف أن هناك OOB في اسرع وقت ممكن).هذا هو في كثير من الأحيان يتم التعامل معها عن طريق إدخال "استنزاف" حلقة حيث يمكنك تجاهل البيانات حتى الفعلية OOB البيانات المتاحة.

إذا كان هذا يبدو مربكا بعض الشيء ولا قيمة لها, هذا لأنه هو الغالب.هناك هي أسباب جيدة لاستخدام OOB, لكنه نادر.مثال واحد هو بروتوكول نقل الملفات ، حيث قد يكون المستخدم في منتصف كبير نقل ولكن تقرر إجهاض.إجهاض يتم إرسالها كما OOB البيانات.عند هذه النقطة الخادم و العميل فقط تناول المزيد من "الطبيعي" البيانات إلى استنزاف أي شيء لا يزال في العبور.إذا كان إحباط تم التعامل مع مضمنة مع البيانات ثم كل المرور المتميز يتعين معالجتها ، إلا أن تكون ملقاة.

أنه من الجيد أن تكون على علم بأن OOB موجود و أساسيات كيف يعمل فقط في حال كنت بحاجة إلى ذلك.ولكن لا يكلف نفسه عناء تعلم ذلك من الداخل إلى الخارج إلا إذا كنت مجرد فضول.وهناك احتمالات الكريم قد أبدا استخدامه.

نصائح أخرى

أعتقد أنني وجدت الإجابة على هذه الصفحة. وبعد بالمختصر:

لا أحتاج إلى التعامل مع بيانات OOB على الجانب الاستقبال إذا لم أكن إرسال أي بيانات OOB. لقد اعتقدت أن بيانات OOB يمكن أن يتم إنشاؤها بواسطة نظام التشغيل من المرسل.

لا تحتاج إلى التعامل معها في الطرف المتلقي حتى لو كنت نكون يتم تجاهل إرسال بيانات OOB بشكل مشرق في جميع الظروف إلا إذا كنت تتجه بنشاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top