Crear Servidor con número de clientes variable.
Buenas, este es mi primer post. El asunto es crear un juego online (pensad en un counter-strike, unreal, etc), con número de jugadores variable.... ¿cómo lo implementaria? ¿TCP o UDP (..o RMI..)? Por otro lado, lo normal serÃa un thread para cada cliente, pero le veo muchos inconvenientes, ¿como podrÃa realizarlo?
Hola:
Puedes hacerlo con TCP o RMI, según tus gustos. No creo que UDP sea adecuado puesto que con UDP puedes perder mensajes y un jugador puede verse, al perder un solo mensaje, totalmente descolgado de la partida
Si lo haces con TCP, efectivamente deberÃas hacer un hilo por jugador o bien el servidor deberÃa ir atendiendo a los jugadores por turnos y tendrÃas que meterte con el tema de sockets no bloqueantes (que cuando el servidor haga un read() de un cliente, el read() no se quede bloqueado si el cliente no ha enviado nada).
Casi me inclino más por rmi. Te evitas en el servidor todo el tema de hilos por clientes. Unicamente tienes que hacer tu escenario de juego y hacer unas clases "remotas" que permitan jugar. Los clientes unicamente obtienen dicha clase y se dedican a jugar. Las llamadas a métodos rmi quedan bloqueadas hasta que terminan, asà que sà tendras que meter un pequeño hilo en los clientes.
Se bueno.
Puedes hacerlo con TCP o RMI, según tus gustos. No creo que UDP sea adecuado puesto que con UDP puedes perder mensajes y un jugador puede verse, al perder un solo mensaje, totalmente descolgado de la partida
Si lo haces con TCP, efectivamente deberÃas hacer un hilo por jugador o bien el servidor deberÃa ir atendiendo a los jugadores por turnos y tendrÃas que meterte con el tema de sockets no bloqueantes (que cuando el servidor haga un read() de un cliente, el read() no se quede bloqueado si el cliente no ha enviado nada).
Casi me inclino más por rmi. Te evitas en el servidor todo el tema de hilos por clientes. Unicamente tienes que hacer tu escenario de juego y hacer unas clases "remotas" que permitan jugar. Los clientes unicamente obtienen dicha clase y se dedican a jugar. Las llamadas a métodos rmi quedan bloqueadas hasta que terminan, asà que sà tendras que meter un pequeño hilo en los clientes.
Se bueno.
