Estás en:   ArielOrtiz.info > Desarrollo de aplicaciones web > Práctica 2: Servidor de knock, knock

Práctica 2: Servidor de knock, knock

Objetivos

Durante esta práctica, los alumnos serán capaces de:

Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.

Descripción de la actividad

NOTA IMPORTANTE: Las actividades de la práctica se pueden elaborar de manera individual o en parejas. El reporte de la práctica de laboratorio debe ser desarrollado de manera individual.

Crea un directorio llamado practica2 y coloca ahí el archivo fuente de tu programa.

Tu archivo fuente debe comenzar con un comentario que contenga el título de la práctica, la fecha y los datos personales de los autores (nombre y matrícula). Por ejemplo:

/*----------------------------------------------------------
 * Práctica 2: Servidor de knock, knock
 * Fecha: 26-Ago-2015
 * Autores:
 *           A01166611 Pepper Pots
 *           A01160611 Anthony Stark
 *----------------------------------------------------------*/

Usando los sockets de Node.js, escribe un program que funcione como servidor del protocolo knock, knock. El cliente para probar el servidor debe ser el programa telnet controlado por un usuario.

La interacción entre cliente y servidor se describe a continuación:

  1. Cuando un cliente se conecta al servidor, el servidor selecciona al azar una adivinanza de tipo knock, knock. La adivinanza debe estar conformada por dos partes, por ejemplo: “lettuce” y “lettuce in, it's cold out here”.
  2. El servidor le responde al cliente con la cadena “knock, knock”.
  3. El cliente debe responder al servidor con la cadena “who's there?”. Si responde con cualquier otra cosa, ir al punto 2, de otra forma continuar al punto 4.
  4. El servidor le responde al cliente con x, en donde x es la primera parte de la adivinanza.
  5. El cliente debe responder al servidor con la cadena “x who?”. Si responde con cualquier otra cosa, ir al punto 2, de otra forma continuar al punto 6.
  6. El servidor le responde al cliente con y, en donde y es la segunda parte de la adivinanza.
  7. El servidor termina la conexión con el cliente.

Los siguientes ejemplos muestran una terminal con dos posibles interacciones entre cliente y servidor (la entrada tecleada por el usuario se muestra en azul):

$ telnet localhost 8000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
knock, knock
who's there?
lettuce
lettuce who?
lettuce in, it's cold out here
Connection closed by foreign host.

$ telnet localhost 8000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
knock, knock
what?
knock, knock
hi there
knock, knock
who's there?
cow says
cow says what?
knock, knock
who's there?
cow says
cow says who?
no silly, a cow says mooooo!
Connection closed by foreign host.
    

Algunos puntos importantes a considerar:

¿Qué se debe entregar?

Para entregar tu trabajo individual, sigue las siguientes instrucciones:

✔ Instrucciones para subir archivo

Para entregar el archivo practica2.tgz, ingresa los siguientes datos:

Solicitar NIP

Fecha límite: Martes, 1 de septiembre.

Evaluación

Esta actividad será evaluada usando los siguientes criterios:

50% Implementación de los requerimientos.
50% Reporte de la práctica de laboratorio.
DA El programa y/o reporte es un plagio.