IIC2333 / foro-2019-1

Foro oficial del curso IIC2333 - Sistemas Operativos y Redes, semestre 2019-1.
2 stars 0 forks source link

Uso de Threads en el servidor #123

Closed sjmunoz closed 5 years ago

sjmunoz commented 5 years ago

Hola!

Es necesario usar threads en el servidor para manejar la conexiones entre los clientes?

malopez16 commented 5 years ago

Hola! Tengo esta misma duda. Revisando opciones, al parecer hay 2:

  1. Threads
  2. Select

Sabiendo que esto tendrá impacto a lo largo de todo el trabajo, ¿Hay alguna recomendación en particular de cuál de los dos approaches seguir?

nivek0o0 commented 5 years ago

Hola!

No es necesario ninguno de los dos approaches, porque su servidor no requiere realizar otras acciones al mismo tiempo que espera por nuevas conexiones entrantes.

Por esa razón, decidimos simplificar el flujo y en al ayudantía dijimos que la primera parte del servidor (las conexiones) podían pensarlas de forma lineal. Esto quiere decir que su servidor debería crear un socket, bloquearse hasta que el primer cliente se conecte, aceptar al primer cliente, bloquearse hasta que el segundo cliente se conecte, aceptar al segundo cliente y recién aquí empezar con la lógica del juego.

De esta sección de conexiones deberían guardar los identificadores del socket de cada cliente, para saber dónde recibir y enviar bytes.

malopez16 commented 5 years ago

Claro, pero por algún motivo, me pasa lo mismo de #125 , por eso preguntaba. Adaptando algunas cosas de la ayudantía, no logro que un segundo cliente se conecte al servidor, luego de haber conectado otro. El programa queda esperando en accept y no se establece la nueva conexión :(

nivek0o0 commented 5 years ago

Voy a responder en la otra issue, pero en resumen el servidor mostrado en la ayudantía no está hecho para soportar múltiples clientes jeje

malopez16 commented 5 years ago

Ok, gracias. Te leo allá entonces