diff options
author | jestin | 2001-08-06 14:33:34 +0000 |
---|---|---|
committer | jestin | 2001-08-06 14:33:34 +0000 |
commit | 4826af957608a54e4492815551f39ac543258fd1 (patch) | |
tree | 4d52af9139d265dd5b8a7a68523f3c352665d447 /src/IvyWatcher.java | |
parent | 8fef6a76959160bf73064be48d4aa36b48f27412 (diff) | |
download | ivy-java-4826af957608a54e4492815551f39ac543258fd1.zip ivy-java-4826af957608a54e4492815551f39ac543258fd1.tar.gz ivy-java-4826af957608a54e4492815551f39ac543258fd1.tar.bz2 ivy-java-4826af957608a54e4492815551f39ac543258fd1.tar.xz |
Adding multicast ( IvyWatcher ), adding the new IvyDaemon program, removing
the debug code in Probe, and who knows what I've done in IvyClient ?
Diffstat (limited to 'src/IvyWatcher.java')
-rwxr-xr-x | src/IvyWatcher.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/IvyWatcher.java b/src/IvyWatcher.java index bae387a..2fe0bfd 100755 --- a/src/IvyWatcher.java +++ b/src/IvyWatcher.java @@ -24,10 +24,11 @@ class IvyWatcher implements Runnable { private static boolean debug = (System.getProperty("IVY_DEBUG")!=null); private Vector domainaddrList; private boolean watcherrunning = false; + private boolean isMulticastAddress = false; private Thread broadcastListener ; private Ivy bus; /* master bus controler */ private DatagramSocket broadcast; /* supervision socket */ - + // it can also be a MulticastSocket, which inherits from the previous /** * creates an Ivy watcher. * @param bus the bus @@ -135,12 +136,19 @@ class IvyWatcher implements Runnable { port = Integer.parseInt( domain.substring( sep_index +1 )); domainaddr = domain.substring(0,sep_index); } - // create the UDP socket + // Handling of multicast address try { - broadcast = new MulticastSocket(port ); + InetAddress group = InetAddress.getByName(domainaddr); + if (group.isMulticastAddress()) { + isMulticastAddress = true; + broadcast = new MulticastSocket(port ); // create the UDP socket + ((MulticastSocket)broadcast).joinGroup(group); + } else { + broadcast = new MulticastSocket(port ); // create the UDP socket + } } catch ( IOException e ) { - throw new IvyException("IvyWatcher erreur I/O" + e ); - } + throw new IvyException("IvyWatcher I/O error" + e ); + } // starts a Thread listening on the socket watcherrunning=true; broadcastListener = new Thread(this); |