private async Task ReceberPacote() { try { // se houver alguma mensagem mandada if (_adversario.Available > 0) { Pacote pct; NetworkStream mensagem = _adversario.GetStream(); // pegar o tamanho do json byte[] bufferLength = new byte[2]; await mensagem.ReadAsync(bufferLength, 0, 2); ushort jsonLength = BitConverter.ToUInt16(bufferLength, 0); // pegar o json byte[] bufferJson = new byte[jsonLength]; await mensagem.ReadAsync(bufferJson, 0, bufferJson.Length); string jsonString = Encoding.UTF8.GetString(bufferJson); pct = Pacote.FromJson(jsonString); try { await _commandHandlers[pct.Comando](pct.Mensagem); } catch (Exception e) { Console.WriteLine($"Erro: {e.Message}"); } } } catch (Exception e) { Console.WriteLine($"Erro na comunicao!: {e.Message}"); } }
public async void ResetSend(string mensagem) { Pacote pct = new Pacote(comando: "reset", mensagem: mensagem); await MandarPacote(pct); }
public async void ChatSender(string mensagem) { Pacote pct = new Pacote(comando: "mensagem", mensagem: mensagem); await MandarPacote(pct); }
public async void ArregarSend(int jogador) { Pacote pct = new Pacote(comando: "tchau", mensagem: jogador.ToString()); await MandarPacote(pct); }
public async void JogadaSend(int x, int y) { Pacote pct = new Pacote(comando: "comando", mensagem: x.ToString() + "," + y.ToString()); await MandarPacote(pct); }
public async void FimDeJogo(int jogador) { Pacote pct = new Pacote(comando: "gameOver", mensagem: jogador.ToString()); await MandarPacote(pct); }