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 :
Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Salutations
Keamin
Annexe :
https://bugs.launchpad.net/ubuntu/+s...a6/+bug/112257
http://forums.sun.com/thread.jspa?threadID=771852
Partager