Proyecto de Curso: Una Aplicación Cliente Servidor

 

 

Codigo Fuente y Ejecutables (ZIP)

Documentacion JavaDoc

 

Descripcion General del sistema:

Se modifico la aplicacion myClien.java myServer.java agregando las siguientes caracteristicas:

1.- Implementar una base de Datos el el servidor donde esten dados de alta los Id's y los passwords de todos los posibles clientes, validando la conexion de cada uno de ellos.La base de datos del servidor esta implementada como un archivo de texto.

 

2.- La orientacion del sistema no es un Chat, mas bien es un servidor de cual se puede obtener informacion preestablecida, la hora del servidor, el No. de Clientes conectados actualmente, el clima, una lista de archivos disponibles. Ademas se puede recibir un archivo del servidor, los archivos de la aplicacion tienen extension "TRF" (transfer File) y son archivos estrictamente de TEXTO PLANO ASCII.

3.- Se implemento un pequeño protocolo para saber reconocer tokens y contestar correctamente.

4.- El sistema sera aplicacion de ventanas. Del lado del cliente se tienen menus para hace Login, Logout, y Cajas de Seleccion para escoger la informacion que se desea pedir al servidor, botones de ejecucion, una caja de texto para visualizar informacion que se ha pedido al servidor o informacion que el ha mandado por su cuenta y una area de texto en donde se visualiza el contenido de algun archivo pedido al servidor. Del lado del servidor se tiene una lista con los clientes que estan actualmente conectados, un Area de texto con la bitacora de todas las peticiones a las cuales le ha dado mantenimiento el servidor, un campo de texto donde se pueden editar mensajes para mandarlos a todos los clientes, menus de configuracion y un boton de ejecucion.

5.- El servidor y el cliente pueden correr en la misma PC.

 

Breve Manual de Usuario:

 

A) Descripcion funcional del servidor:

 

1.- Se ejecuta como <java ClienteServidor.InterfasGraficaservidor>

2.- Se configura :

El puerto por el cual estara escuchando el socket

3.- Aparece la interfas.

4.- Cada vez que se de de alta un cliente o haga una peticion un cliente, se agregara este movimiento a la bitacora indicando la hora y el id del cliente en cuestion

5.- Los login fallidos de los clientes tambien se visualizan en la bitacora

6.- El servidor contesta todas las peticiones de informacion automaticamente a todos los clientes, y asi mismo les manda el contenido de los archivos solicitados por estos (los archivos deben de tener extension .TRF y existir en el directorio desde donde se esta ejecutando).

7.- Se puede mandar un mensaje a todos los clientes tecleandolo en la caja de Texto y presionando el boton "Manda un Mensaje a Todos"

8.- Se puede cambiar la configuracion del puerto aplicando Menu: Configuracion -> Datos de Servidor.

-Si se ha cambiado el puerto, primero el servidor avisa a todos los clientes que ha dejado de dar servicio, se desconecta y reabre la conexion por el nuevo puerto

9.- Para salir, solamente se cierra la ventana.

El servidor avisa a todos los clientes que ha dejado de dar servicio y se desconecta.

 

B) Descripcion funcional del Cliente.

 

1.- Se ejecuta como <java ClienteServidor.InterfasGraficaCliente>

2.- Se configura :

El servidor al cual se quiere uno conectar

El login (maximo 8 cracteres)

El password (maximo 8 caracteres)

El puerto por el cual se conectara el socket

Algunos logins y passwords validos son:

hugo 1234

paco pacorro

luis 7890

alonso 0123

fidel 09876543

marta 44444444

abreu 66666666

 

Si deseas modificar la base de datos modifica el archivo Base.dat. Solamente que nota que son registros de longitud fija de 16 bytes,los primeros 8 bytes son el login y los otros 8 son el password, si no respetas esa longitud tendras problemas de acceso, por lo que es necesario rellenar cada campo a 8 bytes con espacios a la derecha.

3.- Aparece la interfas

4.- Para conectarse se aplica Menu Principal -> conectar

- Si la coneccion es correcta se vera en la barra de mensajes inferior "login Conectado a SERVIDOR PUERTO" y se habilitaran los botones de ejecucion

- De lo contrario se vera el mensaje "No pude conectar : motivo"

- Login incorrecto

- password incorrecto

5.- Se puede seleccionar un tipo de informacion del Choice list superior y obtener la informacion con el boton "Obtener informacion" , La informacion obtenida se visualiza en la caja de Texto o bien en el Area de texto, dependiendo el tamaño de esta (Listas y archivos se ven en el Area de Texto)

6.- Si se sabe que archivos tiene disponibles el servidor, se puede solicitar que se reciba uno utilizando el boton "Recibir Archivo" y tecleando el nombre de este, es necesario introducir tambien la extension, por ejemplo "uno.trf"

7.- Si el servidor envia algun mensaje por iniciativa propia se vera en la caja de texto como "Informacion de Servidor: informacion".

8.- Si el servidor se desconecta, se vera un mensaje : "El Servidor esta Abajo"

El cliente se desconecta y desactiva la interfas hasta que se haga una reconexion por parte del usuario.

9.- Para desconectarse , se aploca Menu: Principal -> Desconectar.

Se deshabilitaran los botones de ejecucion pertinentes y se avisa al sevidor que ha hecho un logout.

10.- Para cambiar la configuracion de conexion se aplica: Menu : Configuracion -> Datos de Cliente.

Para que aplique la nueva configuracion es necesario hacer una desconexion y coneccion por parte del usuario

11.- Para salir solamente cerrar la ventana

Se avisa al sevidor que ha hecho un logout.

 

Espero que no haya muchas dudas :-).

No olviden leer MANUAL.TXT incluido en el archivo ZIP.

Cualquier duda favor de mandarme un correo a alram@cimat.mx

 

Saludos.

 

Codigo Fuente y Ejecutables (ZIP)

Documentacion JavaDoc