Tarea 3

Fecha de entrega: 29 de Noviembre de 2001

Objetivo

Familiarizarse con la transmisión de archivos ejecutables a través de sockets.

Trabajo Solicitado

Un par de programas en C que creen 2 procesos, en diferentes estaciones de trabajo Linux, y permitan
 la comunicación entre los mismos por medio de sockets.
En una máquina el proceso actuará como servidor y esperará solicitudes de conexión de la otrá.
Cuando reciba una solicitud de conexión, enviará al cliente un archivo, el cliente supondrá que
dicho archivo es ejecutable y creará un proceso que lo ejecute.
Para esto lo almacenará en un archivo, lo marcará como ejecutable y lo ejecutará.
El servidor esperará 10 segundos y enviará otro archivo, cuando el cliente reciba un nuevo archivo
terminará el proceso que ejecuta el archivo anterior y creará uno nuevo para el nuevo archivo.
A su vez el cliente actuará como servidor creando un socket local y si recibe una solicitud de conexión
cerrará la conexión con el servidor remoto y terminará el proceso que esté ejecutando el último
archivo recibido, desplegara un mensaje de aviso y terminará.
Para probar que funciona correctamente el servido enviará varios programas que desplieguen diferentes
mensajes en pantalla, los cuales se ejecutaran por 10 segundos, finalmente enviará un programa que
intente conectarse al socket local, lo cual hará que se despliegue el mensaje de terminación y finalice
el cliente. El proceso de la máquina servidora seguira funcionando en espera de nuevas solicitudes.
Para probar esto, se puede ejecutar nuevamente el servidor y el proceso debe repetirse sin tener que
ejecutar nada nuevo en el servidor.
Nota: el servidor sólo atenderá otra solicitud, hasta que se cierre la conexión de la anterior, lo cual
sucede después de enviar el archivo que produce la terminación. Esto significa que no atenderá dos
máquinas simultaneamente, si llega una solicitud cuando esta atendiendo otra, la nueva tendrá que esperar
a que termine con la anterior.