Está en la página 1de 1

UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA


TECNOLOGÍA DE SOFTWARE PARA ELECTRÓNICA
APLICACIÓN CLIENTE - SERVIDOR

FECHA DE ENTREGA: 2020-07-08

Ejercicio 1.

Realizar una aplicación cliente - servidor para enviar un archivo de tipo imagen, video,
etc.

El cliente le pedirá al servidor un archivo por su nombre, y éste se lo enviará, es decir, el


cliente pedirá un archivo por su nombre ingresado con su path desde el teclado, sí existe
el archivo el servidor se lo enviará, caso contrario enviará un mensaje "No existe el
archivo". En el cliente también se ingresa el path donde se desea escribir el archivo que
recibe del servidor. La idea es, por tanto, cómo enviar un archivo por un socket, indicando
la forma de pedir el archivo, y con hilos de conexión para atender muchos clientes y
muchas peticiones.

Una vez que se ejecute el cliente y el servidor, la mensajería entre ellos puede ser parecido
a lo siguiente: El cliente le pide un archivo al servidor mediante el nombre del archivo
que desea. El Servidor le contestará con uno o más mensajes que contendrá básicamente
un arreglo de bytes con el contenido del archivo, más otros campos que se detallan a
continuación.

El Mensaje del cliente al servidor únicamente necesita un atributo String con el nombre
del archivo solicitado.

El Mensaje del servidor al cliente necesita los siguientes atributos:

 Un atributo byte[] con el contenido del archivo. Por simplicidad de código, se


debe poner un tamaño fijo de unos 1024 (1Kbyte), pero si el archivo es más grande
de 1 Kbyte enviar varias veces, hasta terminar de enviar el archivo.
 Un atributo int con el número de bytes válidos. Puesto que el arreglo es siempre
fijo, hay que indicar cuantos bytes tiene el archivo. Si el arreglo es de 1024 y el
archivo sólo tiene 80 bytes, este atributo valdrá 80.
 Un atributo boolean para indicar si es el último mensaje. Si el archivo tiene
5000 bytes, se enviarán 5 mensajes. Hay que avisar en el cliente de alguna forma
que el archivo se ha terminado y no se enviarán más mensajes. Este atributo será
false en todos los mensajes, excepto en el último.
 Un atributo String con el nombre de archivo enviado. Este atributo por si acaso
el cliente se pone a pedir muchos archivos seguidos antes de leer los anteriores y
el servidor es capaz de atender muchas peticiones de archivos y no solo una.

NOTAS:
– La aplicación realizar con el protocolo UDP. En el internet está con el protocolo TCP
– Realizar la aplicación con el código dado en clase, con hilos de conexión.

También podría gustarte