tarea sockets (2014-2)

2
Tarea – Sockets Enunciado En esta tarea, usted creará una breve aplicación que utiliza el esquema cliente servidor usando sockets, específicamente en el lenguaje Java. Para esto, deberá implementar un cliente para la aplicación TareaCloud, cuyo servidor se encuentra activo en la dirección IP 146.83.196.204, escuchando peticiones en el puerto 5000, a través de un socket TCP. Los clientes que se comuniquen con el servidor deben seguir el siguiente protocolo: 1) Una vez conectado al servidor, este dará un mensaje de bienvenida de la forma “BIENVENIDO: aaaaa”, donde aaaa corresponde a un string no mayor a 300 caracteres, que debe ser desplegado por su aplicación. Una vez enviado el mensaje de bienvenida, el servidor espera 30 segundos antes de cerrar la conexión, tiempo durante el cual usted debe solicitar una conexión privada.. Cualquiera otra respuesta del servidor, deberá ser considerada como error, mostrándose por pantalla y dando por terminada la aplicación. 2) El cliente solicita la conexión privada enviando el mensaje: “CONEXION” 3) El servidor responde “OK TCP 5xxx” o bien “OK UDP 6xxx” , donde xxx corresponde a un numero entre 500 y 900, correspondiente a un socket privado para dicho cliente, lo que significa que el cliente se debe conectar al servidor usando el protocolo indicado (TCP o UDP), en el puerto indicado. Después de enviar este mensaje, el servidor cierra la conexión a. Si la respuesta fue “OK TCP 5xxx”, el servidor abrirá un socket TCP en el puerto 5xxx por 30 segundos, a la espera de una conexión para continuar con el trabajo. b. Si la respuesta fue “OK UDP 6xxx”, el servidor abrirá un socket UDP en el puerto 6xxx por 30 segundos, a la espera de una conexión para continuar con el trabajo. c. Cualquiera otra respuesta del servidor, deberá ser considerada como error, mostrándose por pantalla el mensaje correspondiente y dando por terminada la aplicación. 4) Cuando inicie la conexión en el socket privado, el cliente debe enviar el mensaje “GRUPO y”, donde y corresponde a la cantidad de alumnos que componen el grupo y es un número entre 1 y 9. 5) La respuesta del servidor será “OK”. Cualquiera otra respuesta del servidor, deberá ser considerada como error, mostrándose por pantalla y dando por terminada la aplicación 6) Una vez recibido el mensaje “OK”, el cliente deberá enviar el nombre de cada uno de los integrantes, con un largo máximo de 300 caracteres. Por cada uno de los mensajes, el servidor responderá “OK”. Cualquiera otra respuesta del servidor, deberá ser considerada como error, mostrándose por pantalla y dando por terminada la aplicación. Esta operación deberá repetirse y veces. (y es el valor del punto anterior). 7) Para terminar la conexión, el cliente enviará el mensaje “FIN” y esperará la respuesta “OK zzzz”, donde zzz corresponde a un número identificador de la transacción el cual deberá ser desplegado por pantalla, con 0 < zzz < 99999. Cualquiera otra respuesta del servidor, deberá ser considerada como error, mostrándose por pantalla y dando por terminada la aplicación

Upload: rios

Post on 06-Feb-2016

221 views

Category:

Documents


0 download

DESCRIPTION

Traea sockets de comunicacion de datos y redes en java

TRANSCRIPT

Page 1: Tarea Sockets (2014-2)

 Tarea  –  Sockets  

Enunciado    

En  esta   tarea,     usted   creará  una  breve  aplicación  que  utiliza  el   esquema  cliente   servidor  usando   sockets,   específicamente   en   el   lenguaje   Java.   Para   esto,   deberá   implementar   un   cliente  para   la   aplicación   TareaCloud,   cuyo   servidor   se   encuentra   activo   en   la   dirección   IP  146.83.196.204,  escuchando  peticiones  en  el  puerto  5000,  a  través  de  un  socket  TCP.    

   Los  clientes  que  se  comuniquen  con  el  servidor  deben  seguir  el  siguiente  protocolo:      1) Una   vez   conectado   al   servidor,   este   dará   un   mensaje   de   bienvenida   de   la   forma  

“BIENVENIDO:  aaaaa”,   donde  aaaa   corresponde   a   un   string   no  mayor   a   300   caracteres,  que  debe  ser  desplegado  por  su  aplicación.  Una  vez  enviado  el  mensaje  de  bienvenida,  el  servidor   espera   30   segundos   antes   de   cerrar   la   conexión,   tiempo   durante   el   cual   usted  debe   solicitar   una   conexión   privada..   Cualquiera   otra   respuesta   del   servidor,   deberá   ser  considerada  como  error,  mostrándose  por  pantalla  y  dando  por  terminada  la  aplicación.    

2) El  cliente  solicita  la  conexión  privada  enviando  el  mensaje:  “CONEXION”  3) El  servidor  responde  “OK  TCP  5xxx”    o  bien  “OK  UDP  6xxx”   ,  donde  xxx  corresponde  a  un  

numero  entre  500  y  900,  correspondiente  a  un  socket  privado  para  dicho  cliente,   lo  que  significa  que  el   cliente  se  debe  conectar  al   servidor  usando  el  protocolo   indicado  (TCP  o  UDP),  en  el  puerto  indicado.    Después  de  enviar  este  mensaje,  el  servidor  cierra  la  conexión    

a. Si   la   respuesta   fue   “OK  TCP   5xxx”,   el   servidor   abrirá   un   socket   TCP   en   el   puerto  5xxx  por  30  segundos,  a  la  espera  de  una  conexión  para  continuar  con  el  trabajo.    

b. Si   la   respuesta   fue   “OK  UDP  6xxx”,   el   servidor   abrirá  un   socket  UDP  en  el  puerto  6xxx  por  30  segundos,  a  la  espera  de  una  conexión  para  continuar  con  el  trabajo.  

c. Cualquiera   otra   respuesta   del   servidor,   deberá   ser   considerada   como   error,  mostrándose   por   pantalla   el   mensaje   correspondiente   y   dando   por   terminada   la  aplicación.  

4) Cuando  inicie  la  conexión  en  el  socket  privado,  el  cliente  debe  enviar  el  mensaje  “GRUPO  y”,  donde  y  corresponde  a  la  cantidad  de  alumnos  que  componen  el  grupo    y  es  un  número  entre  1  y  9.  

5) La   respuesta   del   servidor   será   “OK”.   Cualquiera   otra   respuesta   del   servidor,   deberá   ser  considerada  como  error,  mostrándose  por  pantalla  y  dando  por  terminada  la  aplicación  

6) Una  vez  recibido  el  mensaje  “OK”,  el  cliente  deberá  enviar  el  nombre  de  cada  uno  de   los  integrantes,   con   un   largo  máximo   de   300   caracteres.     Por   cada   uno   de   los  mensajes,   el  servidor  responderá  “OK”.  Cualquiera  otra  respuesta  del  servidor,  deberá  ser  considerada  como  error,  mostrándose  por  pantalla  y  dando  por  terminada  la  aplicación.    Esta  operación  deberá  repetirse  y  veces.  (y  es  el  valor  del  punto  anterior).  

7) Para  terminar  la  conexión,  el  cliente  enviará  el  mensaje  “FIN”  y  esperará  la  respuesta  “OK  zzzz”,  donde  zzz    corresponde  a  un  número  identificador  de  la  transacción  el  cual  deberá  ser  desplegado  por  pantalla,  con  0  <  zzz  <  99999.  Cualquiera  otra  respuesta  del  servidor,  deberá  ser  considerada  como  error,  mostrándose  por  pantalla  y  dando  por   terminada   la  aplicación  

 

Page 2: Tarea Sockets (2014-2)

Implementación    

Usted  deber   implementar  solamente  el  cliente  de   la  aplicación.  NO  DEBE  IMPLEMENTAR  EL  SERVIDOR.  Su  cliente  deberá  ser  escrito  en   Java,  y  deberá   funcionar  mediante  consola.    Una  vez   iniciado  el   cliente,  este  deberá  preguntar  el  número  de   integrantes  y   luego  cada  uno  de   los  nombres,   para   luego   realizar   la   conexión   y   proceder   al   envío   de   información   de   los   clientes,  indicando  finalmente  el  número  de  la  transacción  realizada.      

 

Entrega    

El  trabajo  se  puede  realizar  de  forma  individual  o  en  pareja,  (pudiendo  ser  los  integrantes    de   distintas   secciones).   Debe   entregar   su   código   comentado,   el   cual   debe   ser   subido   a  Moodle  antes  de  las  23:50  del  día  viernes  12  de  diciembre.  No  olvide  incluir  como  comentarios  de  código,      el  nombre  de  los  integrantes,  y  el  código  de  una  transacción  exitosa.    

 

Evaluación      Su   tarea   será   evaluada   usando   el     mismo   servidor   descrito   anteriormente,   pero   con   distintos  casos  de  prueba,  los  que,  junto  con  la  programación  darán  la  nota  final.    Se  recomienda  que  usted  pruebe   también   usando   este   servidor   y   tome   en   consideración   los   casos   de   prueba   posibles.    Además,  es  importante  considerar  lo  siguiente:    

• Si  no  compila,  su  tarea  tendrá  nota  1.0  • Si  su  aplicación  no  sigue  el  protocolo,  tendrá  nota  1.0  • Si  su  aplicación  se  cae,  por  error,  o  por  una  excepción  no  capturada,  tendrá  nota  2.0  • Si  su  aplicación  no  realiza  ningún  caso  de  prueba,  tendrá  nota  2.0    

 

Observaciones    

• Es   su   responsabilidad   verificar   el   horario   de   Moodle   y   el   de   su   computador,   ası́́   como  tomar  las  medidas  de  resguardo  necesarias  para  asegurar  que  su  trabajo  sea  enviado  antes  de  que  se  cierre  el  módulo  de  entrega.  

• Es   su   responsabilidad   velar   por   el   funcionamiento   del   servidor   de   prueba.   Si   este   se  encuentra  caído,  debe  enviar  un  correo  a  [email protected]  avisando  este  problema.    

• El   servidor   guardará   un   registro   de   las   conexiones   de   prueba,   y   las   transacciones  realizadas.  Es  requerimiento  que  su  aplicación  haya  realizado  al  menos  una  prueba  exitosa  (ese  registro  de  transacción  debe  incluirse  al  momento  de  subir  su  documento).