public List <Usuario> ListarUsuarios(Usuario usuario) { var usuarios = new List <Usuario>(); var cliente = new ClienteTCP(); try { cliente.Conectar("larc.inf.furb.br", 1012); var retorno = new ListarUsuariosComando(cliente, usuario).Executar(); var listaString = retorno.GetConteudo().Split(":"); if (listaString.Length >= 3) { /** * * A ideia deste trecho é processar os retornos, cada retorno é composto * por tres pedaços, que são: "id:nome:vitorias:" * Exemplo: 2756:João da Silva:4:1235:José da Silva:0:1243:Manuel da Silva:2: */ var c = 0; var id = ""; var name = ""; Usuario u; foreach (var item in listaString) { c++; switch (c) { case 1: id = item; break; case 2: name = item; break; case 3: c = 0; // neste ponto recomeçamos u = new Usuario(id); // montamos o obj u.UserName = name; usuarios.Add(u); // adicionamos na lista break; } } } } finally { cliente.Desconectar(); } return(usuarios); }
private void btnDesconectar_Click(object sender, EventArgs e) { //Al hacer click en cerrar sesión: ClienteTCP.Desconectar(conductor);//Se desconecta de la conexión TCP MessageBox.Show("Desconexión con éxito.", "Cliente desconectado"); lblEstadoCliente.Text = "Desconectado"; //Los siguientes botones se habilitan: btnRegistrarCliente.Enabled = true; //Registrarse btnSalirCliente.Enabled = true; //Salir btnLoginCliente.Enabled = true; //Iniciar sesión txtUsuarioCliente.ReadOnly = false; //Campo usuario se vuelve editable txtContraseniaCliente.ReadOnly = false; //Campo contraseña se vuelve editable //Los siguientes botones se deshabilitan: btnDesconectar.Enabled = false; //Cerrar sesión dgvViajeActivo.Enabled = false; btnFinalizarViaje.Enabled = false; btnRefrescar.Enabled = false; }
public Mensagem RetornarMensagem(Usuario usuario) { var cliente = new ClienteTCP(); try { cliente.Conectar("larc.inf.furb.br", 1012); var retorno = new RetornarMensagemComando(cliente, usuario).Executar(); if (retorno.GetConteudo().Trim().Equals(":")) // quando vier apenas ":" significa que não há msg { return(new Mensagem("Sem mensagens\r\n")); } return(retorno); } finally { cliente.Desconectar(); } }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { m_cliente.Desconectar(); m_servidor.Desconectar(); }
void ComandoRecibido(ushort comando, string[] parametros, string cadena, ClienteTCP clienteTcp) { switch (comando) { case 100: //Nombre repetido MessageBox.Show("Error, nombre repetido"); foreach (Cliente jugador in this.clientes) //Borrar el cliente actual { if (jugador.ClienteTcp == clienteTcp) { clientes.Remove(jugador); jugador.ClienteTcp.Desconectar(); break; } } break; case 101: //Color repetido MessageBox.Show("Error, color repetido"); foreach (Cliente jugador in this.clientes) //Borrar el cliente actual { if (jugador.ClienteTcp == clienteTcp) { clientes.Remove(jugador); jugador.ClienteTcp.Desconectar(); break; } } break; case 103: //Versión antigua MessageBox.Show("El servidor necesita de una versión más reciente del programa para poder jugar en él.\r\nActualiza el programa para poder continuar.", "Nueva versión necesaria", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); foreach (Cliente jugador in this.clientes) //Borrar el cliente actual { if (jugador.ClienteTcp == clienteTcp) { clientes.Remove(jugador); jugador.ClienteTcp.Desconectar(); break; } } break; case 12: //Login correcto ActualizarDatosMapaServidor(); break; case 13: //Jugador es administrador foreach (Cliente jugadorLocal in clientes) { if (jugadorLocal.ClienteTcp == clienteTcp) { jugadorLocal.AdministradorServidor = true; break; } } break; case 11: //Jugador desconectado try { clienteTcp.Desconectar(); } catch { } foreach (Cliente jugadorLocal in clientes) { if (jugadorLocal.ClienteTcp == clienteTcp) { MessageBox.Show("El jugador " + jugadorLocal.Nombre + " ha sido expulsado de la partida"); clientes.Remove(jugadorLocal); try { foreach (ItemLista item in listaJugadores.Items) { if (string.Compare(item.Tag.Nombre, jugadorLocal.Nombre, true) == 0) { listaJugadores.Items.Remove(item); break; } } } catch { } break; } } break; case 200: //Informacion sobre el mapa actualizarMapa = false; bool cambiado = false; if (semillaMapa.Value != int.Parse(parametros[0])) { semillaMapa.Value = int.Parse(parametros[0]); cambiado = true; } if (neutrales.Value != int.Parse(parametros[1])) { neutrales.Value = int.Parse(parametros[1]); cambiado = true; } List <Cliente> listaClientes = mapa.Jugadores; if ((parametros.Length - 2) / 2 != listaJugadores.Items.Count) //Jugadores añadidos { cambiado = true; listaJugadores.Items.Clear(); listaClientes = new List <Cliente>(); for (int contador = 2; contador < parametros.Length; contador += 3) { Cliente jugador = new Cliente(parametros[contador], null, 0); jugador.Color = Color.FromArgb(int.Parse(parametros[contador + 1])); jugador.AdministradorServidor = parametros[contador + 2] == "1" ? true : false; listaClientes.Add(jugador); JugadorConectado(jugador); } } if (cambiado) { mapa.Inicializar((int)semillaMapa.Value, listaClientes, (int)neutrales.Value); } actualizarMapa = true; break; case 201: //Iniciar partida foreach (Cliente cliente in clientes) { cliente.ClienteTcp.DatosRecibidos -= ComandoRecibido; } this.DialogResult = DialogResult.OK; this.Close(); break; } }