Esempio n. 1
0
        public void ConectarDevolta(
            string ipLocal,
            string ipRemoto,
            int portaLocal,
            int portaRemota,
            string meuNome)
        {
            //Thread.Sleep(1000);
            try
            {
                // setando essas variaveis, pois o jogador que inicia a partida
                // não às tem antes do jogador adversario se conectar
                _ipRemoto    = ipRemoto;
                _portaRemota = portaRemota;

                // criar canal de conexao com o outro jogador
                var channel = new Channel($"{_ipRemoto}:{_portaRemota}", ChannelCredentials.Insecure);
                // conectar com o outro jogador
                _client = new GrpcBizingoClient.GrpcBizingoClientImpl(new BizingoRpc.BizingoRpcClient(channel));
                // chamada rpc para testar a conexao
                MensagemConexao resposta = _client.Conectar(ipLocal, ipRemoto, portaLocal, portaRemota, meuNome);
                // coloca mensagem no chat para avisar que a conexao foi sucedida
                _appendMessage($"{resposta.MeuNome} conectou-se de {resposta.IpLocal}:{resposta.PortaLocal}!");
                // comeca o jogo
                _setGameOver(false);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Esempio n. 2
0
 /*
  *   Essa funcao sera usada quando algum jogador tentar se conectar
  *   com outro jogador. Ela tambem inicia o processo de conexao do jogador
  *   que iniciou a partida com o jogador que entrou depois
  */
 public void ConectarComAdversario()
 {
     try
     {
         // criar canal de conexao com o outro jogador
         var channel = new Channel($"{_ipRemoto}:{_portaRemota}", ChannelCredentials.Insecure);
         // conectar com o outro jogador
         _client = new GrpcBizingoClient.GrpcBizingoClientImpl(new BizingoRpc.BizingoRpcClient(channel));
         // chamada rpc para testar a conexao
         MensagemConexao resposta = _client.Conectar(_ipLocal, _ipRemoto, _portaLocal, _portaRemota, _meuNome);
         // comecar o proprio servidor para que o outro jogador tambem se conecte
         Thread t = new Thread(() => IniciarServidor());
         t.Start();
         //fazer chamada rpc que faz com que o outro jogador se conecte
         Flag f = _client.ConectarDevolta(resposta.IpLocal, resposta.IpRemoto, resposta.PortaLocal, resposta.PortaRemota, resposta.MeuNome);
         // mensagem de quando um player se conecta com outro
         _appendMessage($"conectou-se com jogador {resposta.MeuNome} de {resposta.IpLocal}:{resposta.PortaLocal}!");
         // iniciar partida
         _setGameOver(false);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }