Multicastsocket & TTL = bug ?
Bonjour,
Je développe un soft qui doit envoyer des paquets UDP avec un TTL de 255.
Pour cela, j'utilise la class MulticastSocket ainsi que la méthode setTimeToLive(int ttl).
Le problème est que lorsque le paquet part, le TTL émit est celui par défaut de l'OS, soit 64 pour Linux et 128 pour Windows XP.
Je tourne sur un XP SP3 et un Linux Ubuntu 8.04.
Pour Java je suis sur JDK7 (après etre passé par le 6 ...)
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public class testTTL {
public static void main(String[] args) throws IOException {
Properties props = System.getProperties();
props.setProperty("java.net.preferIPv4Stack","True");
// props.setProperty("networkaddress.cache.ttl", "255");
System.setProperties(props);
MulticastSocket mySocket = new MulticastSocket(8888);
mySocket.setTimeToLive(255);
System.out.println(mySocket.getTimeToLive());
String msg ="Hello World";
byte[] dataBytes = msg.getBytes();
DatagramPacket data = new DatagramPacket(dataBytes,
dataBytes.length,
InetAddress.getByName("192.168.1.1"),
3306);
mySocket.send(data);
}
} |
Merci d'avance pour votre aide !
Salutations
Keamin
Annexe :
https://bugs.launchpad.net/ubuntu/+s...a6/+bug/112257
http://forums.sun.com/thread.jspa?threadID=771852