示例#1
0
 public void checkRespostas()
 {
     try
     {
         if (sckCliente.Connected)
         {
             string data = "";
             while (true)
             {
                 int bytesRec = sckCliente.Receive(bytes);
                 data += Encoding.ASCII.GetString(bytes, 0, bytesRec);
                 if (data.IndexOf("\n") > -1)
                 {
                     break;
                 }
             }
             InterpretadorDeMensagens.recebeResposta(data);
         }
     }
     catch (Exception e)
     {
         Debug.Log(e.ToString());
         Conexao.indisponivel = true;
         SceneManager.LoadScene("Tela inicial", LoadSceneMode.Single);
         TelaInicial.erro = "Houve algum problmea com o servidor, por favor tente novamente";
     }
 }
示例#2
0
    void Update()
    {
        if (sckServidor.Poll(100, SelectMode.SelectRead))
        {
            Socket sckNovo = sckServidor.Accept();

            if (sckNovo.Available > 0)
            {
                string mensagem = "";
                while (true)
                {
                    int dadosRecebidos = sckNovo.Receive(bytes);
                    mensagem += Encoding.ASCII.GetString(bytes, 0, dadosRecebidos);
                    if (mensagem.IndexOf("\n") > -1)
                    {
                        break;
                    }
                }

                Historico.recebeValor("Mensagem recebida: " + mensagem);

                if (mensagem.Contains("status"))
                {
                    InterpretadorDeMensagens.recebeResposta(mensagem);
                }
                else
                {
                    string resposta = InterpretadorDeMensagens.recebeMensagem(mensagem);
                    byte[] msg      = Encoding.ASCII.GetBytes(resposta);
                    Controle.cliente.EnviaMensagem(resposta);
                }

                sckNovo.Shutdown(SocketShutdown.Both);
                sckNovo.Close();
            }
        }
    }