org.jgroups.tests.ModClusterAdvertizeListener Maven / Gradle / Ivy
package org.jgroups.tests;
import java.net.*;
import java.util.Enumeration;
/**
Listens on 224.0.1.105:23364 for mod-cluster advertizements from httpd daemons and prints them to stdout
@author Bela Ban
@version $Revision: 1.1 $
*/
public class ModClusterAdvertizeListener {
public static void main(String args[]) {
MulticastSocket sock;
InetAddress bind_addr=null, mcast_addr=null;
DatagramPacket packet;
byte buf[]=null;
byte[] recv_buf;
String tmp;
int port=23364;
boolean receive_on_all_interfaces=true;
try {
for(int i=0; i < args.length; i++) {
tmp=args[i];
if("-help".equals(tmp)) {
help();
return;
}
if("-bind_addr".equals(tmp)) {
bind_addr=InetAddress.getByName(args[++i]);
continue;
}
if("-mcast_addr".equals(tmp)) {
mcast_addr=InetAddress.getByName(args[++i]);
continue;
}
if("-port".equals(tmp)) {
port=Integer.parseInt(args[++i]);
continue;
}
if(("-receive_on_all_interfaces".equals(args[i]))) {
receive_on_all_interfaces=true;
continue;
}
help();
return;
}
if(mcast_addr == null)
mcast_addr=InetAddress.getByName("224.0.1.105");
}
catch(Exception ex) {
System.err.println(ex);
return;
}
try {
sock=new MulticastSocket(port);
SocketAddress join_addr=new InetSocketAddress(mcast_addr, port);
if(receive_on_all_interfaces) {
NetworkInterface intf;
for(Enumeration en=NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
intf=(NetworkInterface)en.nextElement();
sock.joinGroup(join_addr, intf);
System.out.println("joined " + join_addr + " on " + intf.getName());
}
}
else {
if(bind_addr != null)
sock.setInterface(bind_addr);
sock.joinGroup(join_addr, null);
}
System.out.println("Socket=" + sock.getLocalAddress() + ':' + sock.getLocalPort() + ", bind interface=" +
sock.getInterface());
int length;
while(true) {
buf=new byte[256];
packet=new DatagramPacket(buf, buf.length);
sock.receive(packet);
recv_buf=packet.getData();
length=packet.getLength();
System.out.println(new String(recv_buf, 0, length) + " [sender=" + packet.getAddress().getHostAddress() +
':' + packet.getPort() + "]\n");
}
}
catch(Exception e) {
System.err.println(e);
}
}
static void help() {
System.out.println("McastSenderTest [-bind_addr ] [-help] [-mcast_addr ] " +
"[-port ] [-receive_on_all_interfaces]");
}
}