tarea sockets (2014-2)

Post on 06-Feb-2016

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Traea sockets de comunicacion de datos y redes en java

TRANSCRIPT

 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  

 

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  mpincheir@ubiobio.cl  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).    

top related