import java.io.*;
import java.net.*;
import java.util.*;

public class mandadorGrupo{
    public static void main(String args[]){
        Scanner teclado=new Scanner(System.in);
        try{
            // Se une al grupo que está en una dirección de difusion (clase D)
            InetAddress grupo=InetAddress.getByName("224.0.0.1");
            MulticastSocket socket=new MulticastSocket(6789);
            socket.joinGroup(grupo);
            // Pido una frase por el teclado y le añado el remitente
            System.out.print("Mensaje a enviar: ");
            String mensaje="Chema dice: "+teclado.nextLine();
            // Mientras no diga Adios...
            while(!mensaje.equals("Adios")){
                // ...convierto el mensaje en bytes...
                byte[] m=mensaje.getBytes();
                // ...creo un datagrama...
                DatagramPacket mensajeSalida=new DatagramPacket(m,m.length,grupo,6789);
                // ...lo envio al grupo...
                socket.send(mensajeSalida);
                // ...y vuelta a empezar
                System.out.print("Mensaje a enviar: ");
                mensaje="Chema dice: "+teclado.nextLine();
            }
            // Abandona el grupo (Ha dicho 'Adios')
            socket.leaveGroup(grupo);
        }catch(Exception e){
        }
    }

}
