AlexMatveev

Untitled

May 3rd, 2013
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. package ru.nsu.ccfit.matveev.netlab1;
  2.  
  3. import java.io.IOException;
  4. import java.net.DatagramPacket;
  5. import java.net.InetAddress;
  6. import java.net.MulticastSocket;
  7. import java.util.HashSet;
  8. import java.util.Set;
  9.  
  10. /**
  11. * Created with IntelliJ IDEA.
  12. * User: alex
  13. * Date: 19.02.13
  14. * Time: 16:46
  15. * To change this template use File | Settings | File Templates.
  16. */
  17. public class SelfCounterProgram {
  18. public static void main(String[] args) throws IOException {
  19. Hook shutdownhook = new Hook();
  20. Runtime.getRuntime().addShutdownHook(shutdownhook);
  21. Set setOfIP = new HashSet<InetAddress>();
  22. MulticastSocket socket = new MulticastSocket(4446);
  23. byte buf[] = new byte[256];
  24. InetAddress group = InetAddress.getByName("230.0.0.1");
  25. socket.joinGroup(group);
  26. setOfIP.add(InetAddress.getLocalHost());
  27.  
  28. buf = "Hello".getBytes();
  29. DatagramPacket packet = new DatagramPacket(buf, buf.length, group, 4446);
  30. socket.send(packet);
  31.  
  32. while (true){
  33. buf = new byte[256];
  34. packet = new DatagramPacket(buf, buf.length);
  35. socket.receive(packet);
  36.  
  37. String received = new String(packet.getData(), 0, packet.getLength());
  38.  
  39. if("IBorn".contentEquals(received) && !setOfIP.contains(received)){
  40. setOfIP.add(packet.getAddress());
  41. buf = "Hello".getBytes();
  42. packet = new DatagramPacket(buf, buf.length, group, 4446);
  43. socket.send(packet);
  44. System.out.println("Current IPs");
  45. System.out.println("---------------------------------------------------------------------------------");
  46. for(Object ip : setOfIP){
  47. System.out.println(ip);
  48. }
  49. }
  50. if("Hello".contentEquals(received) && !setOfIP.contains(received)){
  51. setOfIP.add(packet.getAddress());
  52. System.out.println("Current IPs");
  53. System.out.println("---------------------------------------------------------------------------------");
  54. for(Object ip : setOfIP){
  55. System.out.println(ip);
  56. }
  57. }
  58.  
  59. if("Die".contentEquals(received)){
  60. setOfIP.remove(packet.getAddress());
  61. System.out.println("Current IPs");
  62. System.out.println("---------------------------------------------------------------------------------");
  63. for(Object ip : setOfIP){
  64. System.out.println(ip);
  65. }
  66. }
  67. }
  68.  
  69.  
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment