Está en la página 1de 1

/*

* To change this license header, choose License Headers in Project Properties.


* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package p0;

import java.net.*;
/** Ejemplo que implementa un servidor de eco usando UDP. */
public class ServidorUDP {
public static void main(String argv[]) {
if (argv.length != 1) {
System.err.println("Formato: ServidorUDP <puerto>");
System.exit(-1);
}
DatagramSocket sDatagram = null;
try {
// Creamos el socket del servidor
int puerto = Integer.parseInt(argv[0]);
sDatagram = new DatagramSocket(puerto);
sDatagram.setSoTimeout(300000);
// Establecemos un timeout de 300 segs
while (true) {
// Preparamos un datagrama para recepción
byte array[] = new byte[1024];
DatagramPacket sData = new DatagramPacket(array,array.length);
// Recibimos el mensaje
sDatagram.receive(sData);

// Enviamos el datagrama
// Preparamos el datagrama que vamos a enviar
int puertoRem = sData.getPort();
InetAddress dirCliente = sData.getAddress();
DatagramPacket dgramEnv = new DatagramPacket(array,
array.length, dirCliente, puertoRem);
// Enviamos el mensaje
sDatagram.send(dgramEnv);
}
} catch (SocketTimeoutException e) {
System.err.println("300 segs sin recibir nada");
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
} finally{
// Cerramos el socket
sDatagram.close();
}
}
}

También podría gustarte