سؤال

وسألت هذا السؤال السابق هنا:

برنامج التعاون الفني الجانبين في محاولة للاتصال في وقت واحد

وحاولت طريقة معينة في الحل وأثناء إرسال أثناء استخدام أداة netcat واستنشاق الحزم مع ط أثيري احظت أنني عندما أرسل "مرحبا" سلسلة من جانب واحد إلى آخر وإرساله في قطعة مع مجموعة دفع العلم .

والذي يقرر تعيين علامة دفع؟ ما هي القواعد لتحديد ضغط أو العلم عاجل في قطعة برنامج التعاون الفني؟ هل من الممكن القيام بذلك باستخدام API مآخذ؟

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

المحلول

ويتم استخدام العلامة PUSH بواسطة مكدس TCP القول في الأساس "أنا فعلت حتى الآن". انها مجرد يدل على شريحة البيانات التي تنتقل بالكامل من قبل المصدر.

وليس هناك طريقة للإشارة أو السيطرة عليه في يوزرلاند (API المقبس الخاص بك)، وهذا هو مجرد مكدس TCP / تنفيذ للقيام بذلك. كما علم عاجل.

و(المصدر: ريتشارد ستيفنز - TCP / IP هو موضح المجلد 1 ، الفصل 20)

نصائح أخرى

ويمكنك تعيين علامة عاجل باستخدام send() مع مجموعة MSG_OOB العلم. كما يعني ذلك، فإن البيانات المرسلة يكون خارج النطاق، وهذا يعني عادة لا يتم تلقيه من قبل الجانب الدعوة الدعوة ببساطة read(). فإن الجانب تلقي الحصول على بعض المؤشرات على البيانات OOB مثل SIGURG إشارة، أو أن تصبح مأخذ استثنائي ويمكن التحقق من هذا النحو باستخدام select().

ومعظم الوقت كنت لا ترغب في تعيين علامة عاجل.

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