Comandos
    vcCS            Servidor del Video Club
    vcUser:        Cliente del Video Club

Sintaxis
   vcCS   <puerto usuario> <puerto programación> <puerto envío de videos>
   vcUser   <nombre de máquina del servidor><puerto de usuario>
   vcAdmin <nombre de máquina del servidor><puerto de administración>
    vcVRS   <puerto de recepción de videos>
    Archivos Relacionados: videos.txt, listavideos.h

Este sistema permite realizar programaciones a pedido, y enviar videos a destino. El servidor maneja una lista de videos con sus duraciones contenida en el archivo videos.txt. El formato de este archivo es
<nªvideo> ^<nombre>^<minutos>^<ruta de acceso>
El cliente tiene 4 opciones:
-  Listar los videos disponibles(videos.txt) : Se lista:
    Número del video        Nombre del Video        Duración

-  Ver los videos ya programados. Se lista:
    Número de video        Nombre del Video        Hora de salida al aire
   Además se indica cual está siendo transmitido actualmente. En este caso la salida indica en el aire
    hace XXX minutos en la columna Hora de salida al aire.

-  Programar un video: en este caso, el cliente debe ingresar además el número de video que desea ver,  la hora máxima en que  puede  ser programado, correo electrónico del usuario y máquina de destino del video

-  Salir

Por otra parte, en la máquina de destino debe estar corriendo el programa vcVRS, que se encarga de almacenar el video enviado por el servidor
Finalmente, a través del programa vcAdmin se puede ingresar remotamente al servidor para cambiar la lista de videos disponibles, agregando o quitando videos de videos.txt.

programa vcCS

El servidor cumple con las siguientes funciones:


Para realizar esto  el servidor cuenta con varias funciones :

                                1.- número del video pedido
                                2.- hora de inicio de la Tx
                                3.- Hora término de la Tx
                                4.- Hora máxima en la que se puede transmitir
                Las horas se almacenan en segundos a partir de las 0:00 del 1/1/1970.
                Además, programa  cuenta  modifica también los arreglos  usuarios y paths de prog, los cual contienen los usuarios y las rutas de acceso asignados a cada petición
                Por defecto, programa ordena las peticiones en forma FCFS, programando cada petición lo más pronto posible
                Al cliente se le envía la hora en que se programó su video
 
 
 

programa vcUser

El programa del usuario básicamente recoge las opciones del usuario, las envía al servidor, y despliega en pantalla los datos enviados por este
En base a los argumentos ingresados al ejecutar el programa, este construye el socket usado para comunicarse con el servidor, y luego trata de conectarse a este.
El programa comienza desplegando un menú, y pidiendo una opción al usuario.
La opción ingresada es enviada al servidor.
Para las dos primeras opciones , el cliente luego espera los datos enviados por el servidor y los despliega en pantalla. En el primer caso, recibe una estructura del tipo videos con los videos disponibles. A partir de esta estructura el programa sintetiza la información que despliega en pantalla. En el segundo caso,  se muestra la programación directamente desde el buffer recibido.
Para la opción 3, el cliente pide al usuario que ingrese el numero de video, la fecha máxima en que se puede programar la petición (en formato Nºvideo/mes/dia/hora/minutos/correoelectrónico). Por ejemplo para ingresar el video 1 para el 5 de octubre a las 10:00 am se debe ingresar:
1/10/5/10/00/zero@elo.utfsm.cl
Luego, se solicita la máquina a la que se debe enviar el video programado
 
 

programa vcAdmin

Este programa permite que un administrador se conecte en forma remota y efectue cambios en los videos disponibles.
En base a los argumentos ingresados al ejecutar el programa, este construye el socket usado para comunicarse con el servidor, y luego trata de conectarse a este.
El administador tien tres opciones. Al ingresarla, esta se envía al servidor y este retorna una estructura del tipo videos que contiene la información actual del archivo video.txt.
Si se ingresa la opción 1, se despliegan los datos en pantalla como en el programa anterior. Si se ingresa la opción 2,  se pregunta los datos del nuevo video a ingresar y se modifica la estructura videos.
Si se ingresa la opción 3, se pregunta que video se desea eliminar y se modifica la estructura videos. en estos dos casos, se envía de vuelta la estructura videos al servidor, lo que permite a este modificar el archivo videos.txt.
 
 

programa vcVRS


Este programa recibe el video desde el servidor. Crea primero un socket y espera conexion desde el servidor. Al producirse la conexión, crea un archivo llamado videorecibido donde se almacena la información a medida que va llegando. Luego, al terminar la transmición, cierra el archivo, los sockets y termina.
 

A continuación se muestra un diagrama de los programas y su interacción