Herramientas de usuario

Herramientas del sitio


ejercicio_threads_10-11-2018

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
ejercicio_threads_10-11-2018 [2018/11/10 08:59] frouxejercicio_threads_10-11-2018 [2018/11/10 09:00] (actual) froux
Línea 5: Línea 5:
 El servidor deberá tener un array de 50 posiciones de la siguiente estructura: El servidor deberá tener un array de 50 posiciones de la siguiente estructura:
  
-typedef struct { +   typedef struct { 
-   int fd; +      int fd; 
-   pthread_t pth; +      pthread_t pth; 
-   int estado; +      int estado; 
-   char ID[]; +      char ID[20]; 
-} cliente_t;+   } cliente_t;
  
 - Cada vez que un cliente se conecta, se reservará el primer lugar libre del array, guardando en el campo fd el socket conectado, en pth el puntero al nuevo thread, y el estado se colocará en 1. Cuando el cliente se desconecta, el campo estado pasa a 0. - Cada vez que un cliente se conecta, se reservará el primer lugar libre del array, guardando en el campo fd el socket conectado, en pth el puntero al nuevo thread, y el estado se colocará en 1. Cuando el cliente se desconecta, el campo estado pasa a 0.
  
 - cuando un cliente se conecta, el servidor imprime un mensaje con el número de ID del cliente conectado. - cuando un cliente se conecta, el servidor imprime un mensaje con el número de ID del cliente conectado.
 +
 - existirá una variable global (int cantMensajes;) que se incrementará cada vez que se reciba un mensaje desde un cliente cualquiera. El thread correspondiente responderá una cadena "OKxxxx" reemplazando xxxx por el contenido de la variable cantMensajes. Tomar los recaudos para que la variable no sea accedida por dos threads a la vez. - existirá una variable global (int cantMensajes;) que se incrementará cada vez que se reciba un mensaje desde un cliente cualquiera. El thread correspondiente responderá una cadena "OKxxxx" reemplazando xxxx por el contenido de la variable cantMensajes. Tomar los recaudos para que la variable no sea accedida por dos threads a la vez.
 +
 - cada vez que se reciba un mensaje del cliente, se imprime el ID y el mensaje en pantalla. - cada vez que se reciba un mensaje del cliente, se imprime el ID y el mensaje en pantalla.
 +
 - cuando un cliente se desconecta, se imprime en pantalla un mensaje con el ID y el thread asociado se cierra. - cuando un cliente se desconecta, se imprime en pantalla un mensaje con el ID y el thread asociado se cierra.
 +
 - Capturar SIGINT y cerrar todos los threads y sockets antes de finalizar el programa. - Capturar SIGINT y cerrar todos los threads y sockets antes de finalizar el programa.
  
ejercicio_threads_10-11-2018.1541858370.txt.gz · Última modificación: 2018/11/10 08:59 por froux