كيفية استقبال البث المتعدد UDP في VxWorks 5.5

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

  •  02-07-2019
  •  | 
  •  

سؤال

لم أتمكن من استقبال البث المتعدد UDP ضمن VxWorks 5.5.لقد انضممت إلى مجموعة البث المتعدد:

setsockopt(soc, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &ipMreq, sizeof (ipMreq));

يتلقى رمز مماثل على جهاز يعمل بنظام Windows مجاور البث المتعدد.أنا قادر على إرسال البث المتعدد من VxWorks؛يشير ifShow() إلى أن الواجهة قادرة على البث المتعدد؛تم تمكين MCAST_ROUTING في تكوين kernel، لكنه لا يزال غير قادر على استقبال البث المتعدد.

يحرر:كنت بحاجة إلى تعيين بعض الشيء في سجل تكوين RealTek Ethernet Drive RX لتمكين البث المتعدد ليتم تمريره إلى طبقة التطبيق.

#define RTL_RXCG_AM           0x04      /* Accept Multicast */
هل كانت مفيدة؟

المحلول

هل تقوم بالتحقق من قيمة الإرجاع في استدعاء Joinsetsockopt() للتأكد من نجاحها بالفعل؟لقد واجهت مشكلة محددة مع VxWorks 5.5 في الماضي حيث كانت وصلات البث المتعدد الخاصة بي تفشل عندما لا ينبغي أن تكون كذلك.أعتقد أنه كان علينا الحصول على مكتبات جديدة من WindRiver لإصلاح المشكلة.

يحرر: لا توجد خدعة محددة أعلم بوجودها للحصول على بث متعدد للعمل مع VxWorks.يجب أن يستخدم عمليات مآخذ توصيل BSD القياسية.إذا كانت الواجهة يمكنها استقبال حركة مرور البث الأحادي بشكل صحيح، وأظهر محلل الشبكة (Wireshark، على سبيل المثال) أنه يتم إرسال عمليات JOIN للبث المتعدد وأن حزم البث المتعدد الواردة تم تشكيلها بشكل صحيح، فإنني أشك في وجود مشكلة في برنامج التشغيل.لقد كان دعم WindRiver مفيدًا جدًا لنا في الماضي فيما يتعلق بهذا النوع من المشكلات؛لا أعرف إذا كان لديك عقد دعم معهم للحصول على هذا المستوى من المساعدة.

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