لماذا أحصل على بيانات بيانات UDP خارج الترتيب حتى مع وجود عمليات تعمل محليًا؟

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

  •  22-09-2019
  •  | 
  •  

سؤال

أقوم بتطوير واجهة Java بين خادم البث وعميل فلاش. لقد لاحظت أن بيانات بيانات UDP يمكن أن تصل إلى الواجهة الخاصة بي حتى لو كانت كلتا العمليتين تعمل محليًا.

غير أن وضعها الطبيعي؟ اعتقدت أنه بما أنه لا يتعين على DATAGRAM أن تمر بأي جهاز توجيه أو أي جهاز شبكة ، فلا ينبغي أن يحدث ذلك.

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

المحلول

في الواقع ، لا توجد ضمانات للطلب والاستقبال حول حزم UDP ، حتى لو تم إرسالها من قبل LocalHost على LocalHost. فقط لأن مواصفات البروتوكول لا يعني أي شيء عنها.

نظرًا لأنه لا يمكنك وضع افتراضات عليها ، يجب عليك اختيار استخدام TCP أو التعامل مع إعادة ترتيب باستخدام رقم تسلسل معالجته من قبل برامجك ..

نصائح أخرى

هذا سيكون يعتمد على نظام التشغيل. على الرغم من أنك فشلت في تحديد نظام التشغيل ، فليس من المهم على أي حال. لتبقى محمولة ، يجب أن تتوقع دائمًا مآخذ بياناتك التي تتلقى بيانات الطلب.

على الرغم من أنك تقوم بتشغيل مضيف محلي ، إلا أنه توقع أن تكون بيانات بيانات UDP خارج التسلسل في النشر الفعلي.

إذا كنت في حاجة إليها في التسلسل ، جرب TCP.

لم يتم تحديد UDP للحفاظ على التسلسل ، كما قيلت جميع الملصقات أعلاه ، ولكن إذا لم يكن هناك أجهزة توجيه وسيطة ، فأنا أظن أيضًا وجود خطأ في الكود الخاص بك.

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