2.7 Construir un UDP cliente/servidor

El siguiente ejemplo muestra cómo construir un servidor UDP. El tipo de servidor que se brinda es un servicio eco, que hace eco de los contenidos de un paquete. El servicio de eco corre en un puerto bien conocido, el puerto 7. Si se sabe que un sistema tiene un servidor eco instalado, el servidor podría ser accedido por los clientes para ver si un sistema está levantado y corriendo (similar a la aplicación ping). El ejemplo de abajo demuestra cómo escribir un cliente eco que enviará paquetes al servidor y leerá los resultados devueltos.

NOTA
Algunos sistemas ya tienen el servicio eco corriendo en segundo plano, o por restricciones de seguridad se puede prevenir que el servicio se enlace a un puerto bien conocido. Si este es el caso, necesitaras cambiar el número de puerto a uno diferente (en caso de restricciones de seguridad, debes seleccionar un número por encima del 1024) en el cliente y el servidor. El mismo número de puerto debe ser usado para la comunicación.

2.7.1 Construyendo un servicio Eco

El siguiente ejemplo consiste en construir un servicio de eco, que transmite de vuelta al origen cualquier paquete que recibe. El código no usa ninguna clase o método nuevo, pero emplea una técnica especial. Hace un bucle continuo para servir a un cliente después de otro. A pesar de que solo se puede procesar un paquete a la vez, el retardo entre recibir un paquete y despacharlo otra vez es despreciable, lo que resulta en la ilusión de procesamiento concurrente.
tecnologia_bigger.jpg

2.7.2 Construyendo un cliente Eco

El siguiente cliente puede ser utilizado con el servicio eco y puede ser adaptado fácilmente para soportar otros servicios. Se envían paquetes repetidos al servicio eco, y se tiene un timeout para prevenir que el servicio se plante si un paquete se pierde, y el cliente luego espera recibirlo. Recuerde que es poco probable que un paquete se pierda en el entorno de una intranet, pero con conexiones de red lentas en la internet es muy posible.
tecnologia_bigger.jpg

2.7.3 Ejecución del cliente y el servidor Eco

Antes de que los clientes puedan enviar peticiones, el Echo Server debe estar activo. De lo contrario, los paquetes UDP serán enviados pero ignorados, ya que no hay programa ejecutándose para leerlos. Sin embargo, el cliente no estará quieto si no se devuelve una respuesta, sino que va a enviar los paquetes de nuevo después de dos segundos de espera. Esto es importante, ya que los servidores pueden estar inactivos o los paquetes pueden perderse en la transmisión.
NOTA
Recuerde que en los sistemas Unix, debe tener privilegios de root para enlazar a un puerto menor a 1024. Puede cambiar el puerto de servicio a un número mayor, pero esto debe hacerse tanto en el cliente y el servidor con el fin de volver a compilar.


imagesCA77OK0B.jpg tecnologia_bigger.jpg