//////////////////////////////////////// ATENDER SERVER///////////////////////////////////////////// public void AtenderServidor() { while (true) { //Recibimos mensaje del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); //if (trozos[0].GetType() == typeof(string)) // return; //int codigo = Convert.ToInt32(trozos[0]); int codigo; bool parse = int.TryParse(trozos[0], out codigo); if (!parse) { return; } string mensaje = trozos[1].Split('\0')[0]; switch (codigo) { case 1: // Respuesta a partidas ganadas por un jugador x pg.setrespuesta(mensaje); break; case 2: // Ganadores de partidas de >10min gm = new Ganadores10min(); gm.setLista(mensaje); gm.ShowDialog(); break; case 3: // Respuesta a la hora y la fecha de una partida hf.setrespuesta(mensaje); break; case 4: // Respuesta a partidas un día x gd.setrespuesta(mensaje); break; case 7: // Respuesta a lista de conectados string[] vector = new string[5]; vector = mensaje.Split(','); ShowConectados.RowHeadersVisible = false; ShowConectados.ColumnHeadersVisible = false; ShowConectados.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; ShowConectados.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; ShowConectados.RowCount = vector.Length; ShowConectados.ColumnCount = 1; int i = 0; while (i < vector.Length) { if (i == 0) { ShowConectados.Rows[i].Cells[0].Value = "Número de conectados: " + vector[i]; } else { ShowConectados.Rows[i].Cells[0].Value = vector[i]; } i++; } break; case 6: // Respuesta servicios realizados { servicios_rec.Text = "Número total de servicios: " + mensaje; DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonContador); servicios_rec.Invoke(delegado, new object[] { mensaje }); break; } case 8: //He enviado invitación correctamente MessageBox.Show("Invitación enviada correctamente"); break; case 9: //Recibo invitación //Puedo rechazar o aceptar DialogResult dialogResult = MessageBox.Show("Has recibido una invitación de " + mensaje + ", aceptas?", " Invitación a partida ", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { string msg1 = "6/" + mensaje + "-" + "yes"; byte[] msg = System.Text.Encoding.ASCII.GetBytes(msg1); //byte[] msg = System.Text.Encoding.ASCII.GetBytes("6/"); estaEnSala = true; server.Send(msg); } else if (dialogResult == DialogResult.No) { string msg1 = "6/" + mensaje + "-" + "no"; byte[] msg = System.Text.Encoding.ASCII.GetBytes(msg1); server.Send(msg); } break; case 10: { var result = mensaje.Split(','); if (result[1] == "yes") { estaEnSala = true; } else { MessageBox.Show(result[0] + " ha rechazado tu invitación"); } break; } case 11: { if (chat == null) { break; } var result = mensaje.Split(','); if (chat.chatMensajes == null) { chat.chatMensajes = new ListBox(); } chat.chatMensajes.Items.Add(result[0] + ": " + result[1]); break; } case 12: { //Leemos el indice de nestro player var result = mensaje.Split(','); for (int j = 10; j >= 0; j--) { label3.BackColor = Color.White; label3.ForeColor = Color.Black; label3.Text = "La partida empieza en: \n" + j; Thread.Sleep(1000); } //byte[] player = new byte[80]; //server.Receive(player); //Start game juego = new Juego(Convert.ToInt32(result[1])); juego.setServer(server); juego.setPlayer(Convert.ToInt32(result[0])); juego.ShowDialog(); break; } case 13: { // Es el admin button1.Enabled = true; break; } case 14: { //Cambio de dirección de un usuario var result = mensaje.Split(','); juego.direccionesJugadores[Convert.ToInt32(result[0])] = Convert.ToInt32(result[1]); break; } } } }