Multicast en Java (II) - Servidor Multicast

En la entrada anterior Multicast en Java (I) vimos el esquema general de un servidor y un cliente multicast en JAVA. A continuación se muestra un ejemplo sencillo de servidor multicast y en la siguiente entrada mostraremos un ejemplo de cliente.

Podemos ejecutar ambos en cualquier intérprete de JAVA. El resultado será que todo lo que enviemos escribiendo por teclado desde el servidor será recibido en los clientes. El servidor seguirá enviando datos hasta que escribamos la palabra "salir". Podremos tener ejecutándose todos los clientes que queramos y todos recibirán los mismos datos que hemos escrito desde el servidor. Para probarlo podemos ejecutar una instancia del servidor desde Eclipse y todos los clientes que queramos.

Ejemplo de servidor 
**
* @author Antonio Bellido
*/
// MCServer.java
import java.io.*;
import java.net.*;
public class MCServer
{
public static void main (String[] args) throws IOException
{

System.out.println ("Arrancando el servidor multicast...\n");

//Creamos el MulticastSocket sin especificar puerto.
MulticastSocket s = new MulticastSocket ();

// Creamos el grupo multicast:
InetAddress group = InetAddress.getByName ("231.0.0.1");

// Creamos un datagrama vacío en principio:
byte [] vacio = new byte [0];
DatagramPacket dgp = new DatagramPacket(vacio, 0, group,
10000);

//Cogemos los datos a encapsular de la entrada 
//estándar (el teclado)
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String linea = br.readLine();

//El servidor enviará los datos que lea por teclado hasta que
//se escriba "salir":
while(!linea.equals("salir"))
{

//Creamos el buffer a enviar
byte [] buffer = linea.getBytes ();

//Pasamos los datos al datagrama
dgp.setData (buffer);

//Establecemos la longitud
dgp.setLength (buffer.length);

//Y por último enviamos:
s.send (dgp);

//Leemos de la entrada estandar para evitar bucles infinitos
linea = br.readLine();

}

// Cerramos el socket.
s.close ();
}
}


Continuar leyendo en Multicast en Java (III)
Share:
spacer

No hay comentarios:

Publicar un comentario