2008-09-26 7 views
8

J'ai un problème avec la définition de la durée de vie sur mes paquets Datagram. J'appelle la méthode setTTL (...) sur le paquet avant d'envoyer le paquet au multicastSocket mais si je capture le paquet avec ethereal le champ TTL est toujours mis à 0Java Multicast Time To Live est toujours 0

Répondre

6

Drôle que vous devriez demander ceci, parce que je juste wrote about this yesterday, j'avais le même problème il y a environ 6 mois. Fondamentalement, vous devez définir une propriété de système spécial indiquant la machine virtuelle Java d'utiliser une pile IPv4:

-Djava.net.preferIPv4Stack=true 
+0

merci je vais essayer –

+0

Je l'ai essayé et a travaillé pour moi! Je vous remercie! – Elmer

0

Pour mettre en œuvre la solution de pfranza dans Oracle, où vous ne disposez pas d'une ligne de commande:

Définissez la propriété java.net.preferIPv4Stack=true dans chaque session Oracle comme suit avant d'appeler le code java contenant l'appel multidiffusion avec l'extrait de code PL/SQL suivante:

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

Si l'appel réussit, il retournera NULL.

Questions connexes