Java Multicast Time To Live هو دائمًا 0
سؤال
لدي مشكلة في تعيين TTL على حزم البيانات الخاصة بي.أقوم باستدعاء طريقة setTTL(...) على الحزمة قبل إرسال الحزمة إلى multicastSocket ولكن إذا قمت بالتقاط الحزمة بأثيري، فسيتم دائمًا تعيين حقل TTL على 0
المحلول
من المضحك أنك يجب أن تسأل هذا، لأنني فقط كتب عن هذا أمس, ، كنت أعاني من نفس المشكلة منذ حوالي 6 أشهر.يجب عليك في الأساس تعيين خاصية نظام خاصة لإخبار JVM باستخدام مكدس IPv4:
-Djava.net.preferIPv4Stack=true
نصائح أخرى
لتنفيذ إصلاح pfranza في Oracle، حيث لا يوجد لديك سطر أوامر:
تعيين الخاصية java.net.preferIPv4Stack=true
في كل جلسة Oracle كما يلي قبل استدعاء كود Java الذي يحتوي على استدعاء البث المتعدد بمقتطف PL/SQL التالي:
ret := dbms_java.set_property('java.net.preferIPv4Stack','true');
إذا كانت المكالمة ناجحة فسوف تعود NULL.
لا تنتمي إلى StackOverflow