Código Java para o jogo cliente-servidor no Android

8

Eu desenvolvi um jogo no Android. Agora eu quero jogar no wifi ou 3G. Tenho pacotes de jogos que desejo enviar do formulário do cliente (móvel) para o servidor e depois para outro cliente (móvel).

Não sei como escrever código em Java para enviar os playPackets continuamente ao servidor e receber o playPacket continuamente do servidor para os clientes.

Acho que tenho que usar dois threads, um para enviar e outro para receber.

Alguém pode me ajudar com o código ou o procedimento para escrever um código para ele?

GameBuilder
fonte

Respostas:

2

Ok, vamos começar do começo. Não sei o que você está fazendo e como, mas ao fazer com a rede, você deve tentar o padrão REACTOR .

Basicamente, o reator é uma maneira de evitar o uso de encadeamentos ou adiá-lo quando uma tarefa encadeada é mais dissociada pelo núcleo.

O centro do reator é a função de seleção : você registra suas fontes de eventos e solicita que a seleção retorne quando algo acontecer com uma dessas fontes .

Quando algo é anexado, o loop principal do reator simplesmente encontra o que se aplica a que fonte está reagindo criando um Evento e despacha esse evento para objetos interessados ​​nesse tipo de evento.

Eu não sou um Java Guru, mas eu sei que você pode configurar o soquete (mesmo os UDP) e pode configurá-los como não-bloqueadores. Junto com isso, eu sei que há uma classe chamada Selector em um pacote chamado NIO. Esses itens concordam em definir um recurso de E / S multiplexado e sem bloqueio

Tudo que você precisa é simplesmente configurar dois canais UDP: um para escuta do servidor e outro para conversação do servidor; registre o que está ouvindo no reator e integre a etapa de reação do reator ao loop principal.

Leve em consideração que esse tipo de abordagem permite conectar-se simultaneamente a diferentes canais, para que você considere desenvolver um jogo ponto a ponto (sem gargalos no servidor e design distribuído ... parece bom!)

PS

Observe que, se você estiver usando algum tipo de interface / instalação GUI, provavelmente já estará usando um reator ...

FxIII
fonte
1

Um bom começo para a programação cliente-servidor seria o kryo net, pois é fácil de aprender e frequentemente usado / referido no desenvolvimento de jogos java. Seu evento é baseado, então você não precisará de nenhum thread aqui.

Roman K
fonte