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. 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();
}
}