Code Java pour jeu client-serveur sur Android

8

J'ai développé un jeu sur Android. Maintenant, je veux y jouer sur wifi ou 3G. J'ai des paquets de jeu que je veux envoyer sous forme de client (mobile) au serveur puis à un autre client (mobile).

Je ne sais pas comment écrire du code en Java pour envoyer les playPackets en continu au serveur et recevoir le playPacket en continu du serveur aux clients.

Je suppose que je dois utiliser deux threads pour l'envoi et l'autre pour la réception.

Quelqu'un peut-il m'aider avec le code ou la procédure pour écrire du code?

GameBuilder
la source

Réponses:

2

Ok, commençons par le début. Je ne sais pas ce que vous faites et comment, mais lorsque vous faites avec le réseau, vous devez essayer le modèle REACTOR .

Fondamentalement, le réacteur est un moyen d'éviter l'utilisation de fils ou de le différer lorsqu'une tâche filetée est plus découplée par le cœur.

Le centre du réacteur est la fonction de sélection : vous enregistrez vos sources d'événements et demandez à la sélection de revenir lorsque quelque chose arrive à l'une de ces sources .

Lorsque quelque chose s'ajoute, la boucle principale du réacteur trouve simplement ce qui s'est ajouté à quelle source réagissant en créant un événement et envoie cet événement aux objets intéressés par ce type d'événements.

Je ne suis pas un gourou de Java mais je sais que vous pouvez configurer un socket (même ceux UDP) et vous pouvez les définir comme non bloquants. Parallèlement à cela, je sais qu'il existe une classe appelée Selector dans un package appelé NIO. Ces éléments concordent pour définir une installation d'E / S multiplexée et non bloquante

Tout ce dont vous avez besoin est simplement de configurer deux canaux UDP: un pour l'écoute du serveur et l'autre pour la conversation du serveur; enregistrer l'écoute du réacteur et intégrer l'étape de réaction du réacteur dans votre boucle principale.

Tenez compte du fait que ce type d'approche vous permet de vous connecter simultanément à différents canaux afin d'envisager de développer un jeu peer-to-peer (pas de goulot d'étranglement de serveur et de conception distribuée ... ça sonne bien!)

PS

Veuillez noter que si vous utilisez une sorte de prise / installation de GUI, vous utilisez probablement déjà un réacteur ...

FxIII
la source
1

Un bon début pour la programmation client-serveur serait kryo net car il est facile à apprendre et souvent utilisé / référencé dans le développement de jeux java. Son basé sur les événements, vous n'aurez donc pas besoin de threads ici.

Roman K
la source