Advertisement
masha_mmk

Untitled

Sep 14th, 2021
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.IOException;
  4. import java.net.*;
  5. import java.net.InetAddress;
  6. import java.net.MulticastSocket;
  7. import java.net.SocketTimeoutException;
  8. import java.util.*;
  9.  
  10. public class Main {
  11.  
  12.     public static void main(String[] args) throws IOException {
  13.         String message = "pugs_do_drug_uuu_vatrushki";
  14.         byte[] sendPacket;
  15.         byte[] rcvPacket = new byte[0];
  16.  
  17.         UUID uuid = UUID.nameUUIDFromBytes(message.getBytes());
  18.         message = uuid.toString();
  19.         sendPacket = message.getBytes();
  20.  
  21.         MulticastSocket multicastSocket = new MulticastSocket(8000);
  22.         InetAddress inetGroupAddress = InetAddress.getByName("224.1.1.1");
  23.         multicastSocket.joinGroup(inetGroupAddress);
  24.  
  25.         DatagramPacket datagramSendPacket = new DatagramPacket(sendPacket, sendPacket.length, inetGroupAddress, 8000 );
  26.         DatagramPacket datagramRcvPacket = new DatagramPacket(rcvPacket, rcvPacket.length);
  27.        
  28.         long timeout = 2000;
  29.         while (true) {
  30.             multicastSocket.send(datagramSendPacket);
  31.             long sendTime = System.currentTimeMillis();
  32.  
  33.             while (timeout - (System.currentTimeMillis() - sendTime) > 0) {
  34.                 multicastSocket.setSoTimeout((Long.valueOf(timeout - (System.currentTimeMillis() - sendTime))).intValue() + 1);
  35.  
  36.                 try {
  37.                     multicastSocket.receive(datagramRcvPacket);
  38.                 } catch (SocketTimeoutException exception) {
  39.                     continue;
  40.                 }
  41.  
  42.                 String inetRcvAddress = datagramRcvPacket.getAddress().getHostAddress();
  43.                 String UUIDrcv = Arrays.toString(datagramRcvPacket.getData());
  44.                 if (!inetRcvAddress.equals(datagramSendPacket.getAddress().getHostAddress()) && UUIDrcv.equals(message)) {
  45.                     System.out.print("Clone appeared!!!");
  46.                 } else System.out.println("No clone appeared!!!");
  47.             }
  48.         }
  49.     }
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement