Crear Servidor con número de clientes variable.

Cannabi
16 de Septiembre del 2005
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?

chuidiang
16 de Septiembre del 2005
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.

Cannabi
16 de Septiembre del 2005
Muchas gracias por la guía. Con TCP ya lo veia chungo, muchos problemas. Ahora el problema es que es la segunda vez que escucho lo de RMI ;), voy a tener q currarmelo, muchas gracias otra vez.