Soy novato en c , alguien me puede indicar como empezar a resolver esta act, gracias
Escribir en C y usando sockets, un cliente y un server que se comuniquen UDP, y efectúen las siguientes operaciones:
1. El usuario que utiliza el software cliente puede solicitar enviar al server un file (upload) mediante el comando UP <filename>, el upload debe tener las siguientes características:
a. El server que recibe la señal de upload, abre un archivo local para la escritura
b. El cliente envía el archivo dividiéndolo en bloques de longitud adecuada.
c. El final del file se indica mediante el envío de un bloque vacío (sin datos).
d. El servidor que recibe la señal de finalización del file, cierra el file local y confirma el éxito de la operación.
2. El usuario que utiliza el software cliente puede solicitar que le envíen un archivo almacenado en el servidor (download), mediante el comando DOWN <filename>. El download (descarga) debe tener las siguientes características:
a. El servidor que recibe la solicitud de download abre el relativo archivo local para la lectura.
b. es siempre el cliente que requiere la lectura de un nuevo fragmento del archivo, el que especifica la longitud en bytes.
c. El servidor envía el fragmento requerido.
d. El final del archivo se indica mediante el envío de un fragmento vacio o de longitud inferior a aquel requerido por el cliente.
e. El final de la download (descarga) provoca el cierre del servidor de archivos locales.
f. El cliente podrá solicitar la finalización de la lectura del archivo en cualquier momento, con un control especial.
3. Mientras se están llevando a cabo las operaciones de upload de un file no se puede iniciar una download, y viceversa.
4. El servidor debe estar constituido de 4 procesos previos, cuando comienzan las operaciones.
5. El cliente no debe bloquear la interfaz del usuario, si hay operaciones en curso en la red.
6. Tratar el caso de errores de transmisión.
7. Hay que detectar y recuperar cualquier accidente de server y cliente.
8. Debemos evitar cualquier problema de fugas.
9. Debemos hacer frente a accesos concurrentes en el mismo archivo.