Foros del Web » Programación para mayores de 30 ;) » Java »

broadcast

Estas en el tema de broadcast en el foro de Java en Foros del Web. Hola, estoy haciendo un programa de mensajería y necesito hacer un broadcast, enviar un mensaje a todos los equipos, después de infinidad de pruebas y ...
  #1 (permalink)  
Antiguo 04/11/2009, 15:10
 
Fecha de Ingreso: noviembre-2006
Mensajes: 56
Antigüedad: 17 años, 5 meses
Puntos: 1
broadcast

Hola, estoy haciendo un programa de mensajería y necesito hacer un broadcast, enviar un mensaje a todos los equipos, después de infinidad de pruebas y busquedas por google no lo consigo, me aparece el siguiente error:

java.io.IOException: Operation not permitted
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:6 16)

Pego un sencillo ejemplo de pruebas para cliente y servidor por si alguien puede darme alguna pista:

Cita:

public ClienteUdp() {
try {
// Mensaje a enviar
String msg = "Hola";
byte[] msgtoBytes = new byte[4];
msgtoBytes=msg.getBytes();

//Dirección IP Servidor UDP
InetAddress direccion = InetAddress.getByName("10.1.1.255");
//Dirección (broadcast) y puerto servidor.
DatagramPacket dp = new DatagramPacket(msgtoBytes,
msgtoBytes.length, direccion, 3000);
DatagramSocket socket= new DatagramSocket();
socket.setBroadcast(true);
socket.send(dp);
socket.close();

} catch (Exception e) {
e.printStackTrace();
}
}

public ServidorUdp() {
try {

// direccion ip del interfaz de red
InetAddress direccion = InetAddress.getLocalHost();
int puerto = 3000;
DatagramSocket socket = new DatagramSocket(puerto, direccion);
byte[] buffer = new byte[4];
// Un DatagramPacket para recibir los mensajes.
DatagramPacket dato = new DatagramPacket(buffer, buffer.length);

System.out.println("Iniciando servidor UDP...");
// Bucle infinito.
while (true) {
// Se recibe un dato y se escribe en pantalla.
socket.receive(dato);
System.out.print("Recibido dato de "
+ dato.getAddress().getHostName() + " : ");
// Conversion de los bytes a String
String msg = new String(dato.getData());
System.out.println(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Saludos.
  #2 (permalink)  
Antiguo 04/11/2009, 16:38
 
Fecha de Ingreso: noviembre-2006
Mensajes: 56
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: broadcast

Ya lo he solucionado, tenía levantado iptables.

a2.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:55.