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"; } }
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(); } } }