aboutsummaryrefslogtreecommitdiff
path: root/src/IvyWatcher.java
diff options
context:
space:
mode:
authorjestin2001-08-06 14:33:34 +0000
committerjestin2001-08-06 14:33:34 +0000
commit4826af957608a54e4492815551f39ac543258fd1 (patch)
tree4d52af9139d265dd5b8a7a68523f3c352665d447 /src/IvyWatcher.java
parent8fef6a76959160bf73064be48d4aa36b48f27412 (diff)
downloadivy-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-xsrc/IvyWatcher.java18
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);