Código Java para juegos cliente-servidor en Android

8

He desarrollado un juego en Android. Ahora quiero jugarlo en wifi o 3G. Tengo paquetes de juegos que quiero enviar desde el cliente (móvil) al servidor y luego a otro cliente (móvil).

No sé cómo escribir código en Java para enviar los paquetes de reproducción continuamente al servidor y recibir el paquete de reproducción continuamente desde el servidor a los clientes.

Supongo que tengo que usar dos hilos, uno para enviar y otro para recibir.

¿Alguien puede ayudarme con el código o el procedimiento para escribirlo?

GameBuilder
fuente

Respuestas:

2

Ok, comencemos desde el principio. No sé qué está haciendo y cómo, pero cuando lo hace con la red, debe probar el patrón REACTOR .

Básicamente, el reactor es una forma de evitar el uso de hilos o deferente donde una tarea roscada está más desacoplada por el núcleo.

El centro del reactor es la función de selección : registra sus fuentes de eventos y le pide a la selección que regrese cuando algo le ocurra a una de esas fuentes .

Cuando algo se agrega, el bucle principal del reactor simplemente encuentra qué fue lo que afectó a qué fuente reacciona creando un evento y distribuye este evento a los objetos interesados ​​en ese tipo de eventos.

No soy un Java Guru, pero sé que puedes configurar el socket (incluso los UDP) y puedes configurarlos como no bloqueantes. Junto con esto, sé que hay una clase llamada Selector en un paquete llamado NIO. Esas cosas coinciden en definir una instalación de E / S multiplexada y sin bloqueo

Todo lo que necesita es simplemente configurar dos canales UDP: uno para escuchar el servidor y el otro para hablar del servidor; registre el que escucha en el reactor e integre el paso de reacción del reactor en su circuito principal.

Tenga en cuenta que este tipo de enfoque le permite conectarse simultáneamente con diferentes canales para que pueda considerar desarrollar un juego entre pares (sin cuello de botella en el servidor y diseño distribuido ... ¡suena bien!)

PD

Tenga en cuenta que si está utilizando algún tipo de interfaz gráfica de usuario, probablemente ya esté utilizando un Reactor ...

FxIII
fuente
1

Un buen comienzo para la programación cliente-servidor sería kryo net ya que es fácil de aprender y a menudo se usa / refiere en el desarrollo de juegos java. Está basado en eventos, por lo que no necesitará ningún subproceso aquí.

Roman K
fuente