Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.nsu.ccfit.matveev.netlab1;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.InetAddress;
- import java.net.MulticastSocket;
- import java.util.HashSet;
- import java.util.Set;
- /**
- * Created with IntelliJ IDEA.
- * User: alex
- * Date: 19.02.13
- * Time: 16:46
- * To change this template use File | Settings | File Templates.
- */
- public class SelfCounterProgram {
- public static void main(String[] args) throws IOException {
- Hook shutdownhook = new Hook();
- Runtime.getRuntime().addShutdownHook(shutdownhook);
- Set setOfIP = new HashSet<InetAddress>();
- MulticastSocket socket = new MulticastSocket(4446);
- byte buf[] = new byte[256];
- InetAddress group = InetAddress.getByName("230.0.0.1");
- socket.joinGroup(group);
- setOfIP.add(InetAddress.getLocalHost());
- buf = "Hello".getBytes();
- DatagramPacket packet = new DatagramPacket(buf, buf.length, group, 4446);
- socket.send(packet);
- while (true){
- buf = new byte[256];
- packet = new DatagramPacket(buf, buf.length);
- socket.receive(packet);
- String received = new String(packet.getData(), 0, packet.getLength());
- if("IBorn".contentEquals(received) && !setOfIP.contains(received)){
- setOfIP.add(packet.getAddress());
- buf = "Hello".getBytes();
- packet = new DatagramPacket(buf, buf.length, group, 4446);
- socket.send(packet);
- System.out.println("Current IPs");
- System.out.println("---------------------------------------------------------------------------------");
- for(Object ip : setOfIP){
- System.out.println(ip);
- }
- }
- if("Hello".contentEquals(received) && !setOfIP.contains(received)){
- setOfIP.add(packet.getAddress());
- System.out.println("Current IPs");
- System.out.println("---------------------------------------------------------------------------------");
- for(Object ip : setOfIP){
- System.out.println(ip);
- }
- }
- if("Die".contentEquals(received)){
- setOfIP.remove(packet.getAddress());
- System.out.println("Current IPs");
- System.out.println("---------------------------------------------------------------------------------");
- for(Object ip : setOfIP){
- System.out.println(ip);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment