2008-09-26 9 views
8

Ich habe ein Problem mit der Einstellung der TTL auf meine Datagramm-Pakete. Ich rufe die setTTL (...) Methode auf dem Paket vor dem Senden des Pakets an die MulticastSocket, aber wenn ich das Paket mit ätherischen erfassen das TTL-Feld ist immer auf 0 gesetztJava Multicast Time to Live ist immer 0

Antwort

6

Lustig, dass Sie dies fragen sollten, weil ich nur wrote about this yesterday, hatte ich das gleiche Problem vor 6 Monaten. Grundsätzlich müssen Sie eine spezielle System Eigenschaft die JVM sagen, eine IPv4-Stack zu verwenden:

-Djava.net.preferIPv4Stack=true 
+0

danke ich gebe das einen Versuch –

+0

Ich versuchte es und arbeitete für mich! Vielen Dank! – Elmer

0

Um pfranza der fix in Oracle zu implementieren, wo Sie keine Befehlszeile haben:

die Eigenschaft Set java.net.preferIPv4Stack=true in jeder Oracle-Sitzung wie folgt vor dem Java-Code des Aufruf den Multicast-Aufruf mit dem folgenden PL/SQL-Schnipsel enthalten:

ret := dbms_java.set_property('java.net.preferIPv4Stack','true'); 

Wenn der Aufruf erfolgreich ist es NULL zurückkehren wird.