Hola. la tarea es la siguiente:
Objetivo de la tarea: La tarea se trata de hacer un servicio de directorio de teléfono en la Internet. El servicio es implementado por un servidor que tiene como tarea por un lado, registrar los datos de las personas y por otro, entregar los datos de alguna persona si los tiene. Por su lado los clientes pueden hacer dos cosas: 1) registrar su nombre y teléfono con el servidor, o 2) preguntar al servidor por el teléfono de una persona dado su nombre.
El servidor: El servidor, que puede estar corriendo en cualquier computador estará escuchando en el port 8888 requerimientos de personas que quieran usar el servicio, ya sea para registrarse o para pedir datos. Esto lo hace creando un socket servidor amarrado al por 8888 con la instrucción ServerSocket ssocket = new ServerSocket(8888); y poniéndolo a escuchar dentro de un ciclo infinito (while(true)) con la instrucción Socket so = ssocket.accept(); Cuando se conecta un cliente, se abre un BufferedReader y se lee el mensaje (una sola línea). Si la línea comienza con las letras REG (mayúsculas) se trata de una petición de registro de nombre y número. En ese caso el resto de la línea viene como sigue: luego de REG vendrá un espacio y a continuación el teléfono de la persona, luego otro espacio y el nombre completo hasta el final de la línea. Ejemplos:
REG 2285108 Juan Perez Jimenez
REG 8796788 Ana Maria Castillo Ramirez
REG 7435263 Marianela Recabarren Martinez
El servidor debe reaccionar a esto registrando los datos en las estructuras que usted estime adecuadas.
Si las primeras 3 letras PET (mayúsculas) se trata de una petición por número de teléfono. En ese caso, luego de las 3 letras vendrá un espacio y el resto es el nombre completo o parte del nombre de la persona de la cual se quiere el teléfono. Ejemplos:
PET Juan Perez
PET Maria
En este caso, el servidor responderá al cliente (escribiendo líneas en un PrintWriter abierto desde el socket) con todos los nombres y números telefónicos de las personas que tengan dentro de su nombre el string enviado. Para el primer ejemplo, si se han registrado sólo las trés personas del ejemplo anterior, se debe mandar sólo una línea con el nombre completo y el teléfono de Juan Perez Jiménez. Para el segundo ejemplo, se deben mandar dos líneas, una con el nombre completo y teléfono de Ana María y otra con los datos de Marianela. Para avisarle al cliente que ya no vienen más líneas se envía una última línea que solo contiene un punto “.” al comienzo de ella.
El cliente: Debe escribir un cliente que permita registrar personas en el servidor o preguntar por ellas. Para ello debe recibir los comandos del usuario desde un objeto Console, conectarse con el servidor y recibir la respuesta en caso que sea necesario. Un posible ejemplo del diálogo entre el usuario y el programa cliente es el siguiente:
Que accion desea realizar (1- registrar, 2- consultar, 0-salir) : 1
Nombre : Juan Perez Jiménez
Numbero: 2285108
Que accion desea realizar (1- registrar, 2- consultar, 0-salir) : 1
Nombre : Ana Maria Castillo Ramirez
Numbero: 8796788
Que accion desea realizar (1- registrar, 2- consultar, 0-salir) : 1
Nombre : Marianela Recabarren Martinez
Numbero: 7435263
Que accion desea realizar (1- registrar, 2- consultar, 0-salir) : 2
Nombre : Ricardo
No hay resultados
Que accion desea realizar (1- registrar, 2- consultar, 0-salir) : 2
Nombre : Maria
8796788 Ana Maria Castillo Ramirez
7435263 Marianela Recabarren Martinez
Que accion desea realizar (1- registrar, 2- consultar, 0-salir) : 0
TENGO TODA LA conexión, HECHA, CLIENTE-SERVIDOR, SOLO ME FALTA "El servidor debe reaccionar a esto registrando los datos en las estructuras que usted estime adecuadas. "
ALGUIEN PODRIA AYUDARME CON UN CODIGO?.. YA SEA CON LISTAS ENLAZADAS O CON ARRAYS, Y DONDE DEBO PONERLO?
agradeceria sus respuestas