private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { if (this.socketCliente != null) { //se crea el paquete de salida Paquete paqueteSalida = new Paquete(); paqueteSalida.IdentificadorChat = IdentificadorDato.Desconectado; paqueteSalida.NombreChat = nombre; paqueteSalida.MensajeChat = null; //se obtiene el arreglo de bytes de dicho paquete byte[] buferTx = paqueteSalida.ObtenerArregloBytes(); socketCliente.SendTo(buferTx, 0, buferTx.Length, SocketFlags.None, epServidor); socketCliente.Close(); } } catch (Exception ex) { MessageBox.Show("Error al desconectar: " + ex.Message, "Cliente UDP", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnConectar_Click(object sender, EventArgs e) { try { nombre = txtNombre.Text.Trim(); Paquete paqueteInicio = new Paquete(); paqueteInicio.NombreChat = nombre; paqueteInicio.MensajeChat = null; paqueteInicio.IdentificadorChat = IdentificadorDato.Listado; paqueteInicio.IdentificadorL = IdentificadorListado.Conectado; socketCliente = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPAddress servidorIP = IPAddress.Parse(txtServidor.Text.Trim()); IPEndPoint puntoRemoto = new IPEndPoint(servidorIP, 30000); epServidor = (EndPoint)puntoRemoto; byte[] buferTx = paqueteInicio.ObtenerArregloBytes(); socketCliente.BeginSendTo(buferTx, 0, buferTx.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); buferRx = new byte[1024]; socketCliente.BeginReceiveFrom(buferRx, 0, buferRx.Length, SocketFlags.None, ref epServidor, new AsyncCallback(this.ProcesarRecibir), null); btnConectar.Enabled = false; txtNombre.Enabled = false; txtServidor.Enabled = false; } catch (Exception ex) { MessageBox.Show("Error al conectarse: " + ex.Message, "Cliente UDP", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnEnviar_Click(object sender, EventArgs e) { try { Paquete paqueteParaEnviar = new Paquete(); paqueteParaEnviar.NombreChat = nombre; paqueteParaEnviar.MensajeChat = txtMensajeParaEnviar.Text.Trim(); paqueteParaEnviar.IdentificadorChat = Paquete.IdentificadorDato.Mensaje; byte[] arregloBytes = paqueteParaEnviar.ObtenerArregloBytes(); socketCliente.BeginSendTo(arregloBytes, 0, arregloBytes.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); txtMensajeParaEnviar.Text = string.Empty; } catch (Exception ex) { MessageBox.Show("Error al enviar: " + ex.Message, "Cliente UDP", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnEnviar_Click(object sender, EventArgs e) { try { Cliente Jugadorextremo = (Cliente)lstClientes.SelectedItem; Paquete paqueteParaEnviar = new Paquete(); paqueteParaEnviar.NombreChat = nombre; paqueteParaEnviar.IdentificadorL = IdentificadorListado.Solicitar; string jugador = Jugadorextremo.nombre + "," + Jugadorextremo.puntoExtremo.ToString(); paqueteParaEnviar.MensajeChat = jugador; paqueteParaEnviar.IdentificadorChat = IdentificadorDato.Mensaje; byte[] arregloBytes = paqueteParaEnviar.ObtenerArregloBytes(); socketCliente.BeginSendTo(arregloBytes, 0, arregloBytes.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); } catch (Exception ex) { MessageBox.Show("Error al enviar: " + ex.Message, "Cliente UDP", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnA9_Click(object sender, EventArgs e) { try { Paquete paqueteParaEnviar = new Paquete(); paqueteParaEnviar.MensajeChat = "A9," + jugadormensaje; paqueteParaEnviar.NombreChat = nombre; paqueteParaEnviar.IdentificadorL = IdentificadorListado.Null; paqueteParaEnviar.IdentificadorChat = IdentificadorDato.Jugada; byte[] arregloBytes = paqueteParaEnviar.ObtenerArregloBytes(); btnA9.Text = "O"; btnA9.Enabled = false; socketCliente.BeginSendTo(arregloBytes, 0, arregloBytes.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); resultado(btnA1.Text, btnA2.Text, btnA3.Text, btnA4.Text, btnA5.Text, btnA6.Text, btnA7.Text, btnA8.Text, btnA9.Text); pausar(); } catch (Exception ex) { MessageBox.Show("Error al enviar: " + ex.Message, "Cliente UDP", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//24 private void DesplegarMensaje1(string mensaje) { rxtMensajes.Text = mensaje; if (MessageBox.Show(clientes + " Quiere iniciar partida", "INICIAR PARTIDA", MessageBoxButtons.YesNo) == DialogResult.Yes) { Console.WriteLine("aqui"); String[] substrings = mensaje.Split(',', ':'); jug1 = substrings[2]; jug2 = substrings[4]; Console.WriteLine(jug2 + jug1); btnA1.Visible = true; btnA2.Visible = true; btnA3.Visible = true; btnA4.Visible = true; btnA5.Visible = true; btnA6.Visible = true; btnA7.Visible = true; btnA8.Visible = true; btnA9.Visible = true; lstClientes.Visible = false; nombre = txtNombre.Text; Paquete paqueteSolicitar = new Paquete(); paqueteSolicitar.NombreChat = nombre; paqueteSolicitar.MensajeChat = mensaje; Console.WriteLine(mensaje); paqueteSolicitar.IdentificadorChat = IdentificadorDato.Mensaje; paqueteSolicitar.IdentificadorL = IdentificadorListado.Aceptar; byte[] buferTx = paqueteSolicitar.ObtenerArregloBytes(); socketCliente.BeginSendTo(buferTx, 0, buferTx.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); } else { nombre = txtNombre.Text; Paquete paqueteSolicitar = new Paquete(); paqueteSolicitar.NombreChat = nombre; paqueteSolicitar.MensajeChat = mensaje; paqueteSolicitar.IdentificadorChat = IdentificadorDato.Mensaje; paqueteSolicitar.IdentificadorL = IdentificadorListado.Negar; byte[] buferTx = paqueteSolicitar.ObtenerArregloBytes(); socketCliente.BeginSendTo(buferTx, 0, buferTx.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); } }
private void btnConectar_Click(object sender, EventArgs e) { try { //seteo en la variable el nombre ingresado nombre = txtNombre.Text.Trim(); //se crean los paquetes iniciales Paquete paqueteInicio = new Paquete(); paqueteInicio.NombreChat = nombre; paqueteInicio.MensajeChat = null; paqueteInicio.IdentificadorChat = IdentificadorDato.Conectado; //se instancia socket, con el constructor que acepta como parámetros de entrada el esquema de //direccionamiento, el tipo de socket, y el tipo de protocolo que en este caso es udp socketCliente = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //se setea la dirección ip del servidor IPAddress servidorIP = IPAddress.Parse(txtServidor.Text.Trim()); //se crea un punto remoto con la dirección ip del servidor y el puerto de escucha IPEndPoint puntoRemoto = new IPEndPoint(servidorIP, 30000); epServidor = (EndPoint)puntoRemoto; //se obtiene el arreglo de bytes de paquete inicial byte[] buferTx = paqueteInicio.ObtenerArregloBytes(); //socket para envío de datos socketCliente.BeginSendTo(buferTx, 0, buferTx.Length, SocketFlags.None, epServidor, new //delegado al método ProcesarEnviar cuando se intenta la conexión AsyncCallback(ProcesarEnviar), null); //se setea el tamaño del buffer de recepción buferRx = new byte[1024]; //se recibe asincrónicamente los datos socketCliente.BeginReceiveFrom(buferRx, 0, buferRx.Length, SocketFlags.None, ref epServidor, new //se hace referencia al método ProcesarRecibir cuando finalice la entrega asincrónica AsyncCallback(this.ProcesarRecibir), null); } catch (Exception ex) { //si se presenta un error se muestra por consola MessageBox.Show("Error al conectarse: " + ex.Message, "Cliente UDP", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void resultado(string A1, string A2, string A3, string A4, string A5, string A6, string A7, string A8, string A9) { Console.WriteLine("Evaluar"); Console.WriteLine(jug1); Console.WriteLine(jug2); Console.WriteLine("clientes"); string variable = null; if (btnA1.Text != "" && btnA2.Text != "" && btnA3.Text != "" && btnA4.Text != "" && btnA5.Text != "" && btnA6.Text != "" && btnA7.Text != "" && btnA8.Text != "" && btnA9.Text != "") { Console.WriteLine("finalizo"); if ((btnA1.Text == "O") && ((A1 == A2 && A1 == A3) || (A1 == A4 && A1 == A7) || (A1 == A5 && A1 == A9))) { Console.WriteLine(jug1 + "gano"); variable = "gano"; } else if ((btnA2.Text == "O") && ((A2 == A5 && A2 == A8))) { Console.WriteLine(jug1 + "gano"); variable = "gano"; } else if ((btnA3.Text == "O") && ((A3 == A6 && A3 == A9) || (A3 == A5 && A3 == A7))) { Console.WriteLine(jug1 + "gano"); variable = "gano"; } else if ((btnA4.Text == "O") && ((A4 == A5 && A4 == A6))) { Console.WriteLine(jug1 + "gano"); variable = "gano"; } else if ((btnA7.Text == "O") && ((A7 == A8 && A7 == A9))) { Console.WriteLine(jug1 + "gano"); variable = "gano"; } else if ((btnA1.Text == "X") && ((A1 == A2 && A1 == A3) || (A1 == A4 && A1 == A7) || (A1 == A5 && A1 == A9))) { Console.WriteLine(jug1 + "perdio"); variable = "perdio"; } else if ((btnA2.Text == "X") && ((A2 == A5 && A2 == A8))) { Console.WriteLine(jug1 + "perdio"); variable = "perdio"; } else if ((btnA3.Text == "X") && ((A3 == A6 && A3 == A9) || (A3 == A5 && A3 == A7))) { Console.WriteLine(jug1 + "perdio"); variable = "perdio"; } else if ((btnA4.Text == "X") && ((A4 == A5 && A4 == A6))) { Console.WriteLine(jug1 + "perdio"); variable = "perdio"; } else if ((btnA7.Text == "X") && ((A7 == A8 && A7 == A9))) { Console.WriteLine(jug1 + "perdio"); variable = "perdio"; } else { variable = "empate"; } switch (variable) { case "gano": nombre = txtNombre.Text; Paquete paqueteRespuesta = new Paquete(); paqueteRespuesta.NombreChat = nombre; paqueteRespuesta.MensajeChat = "PERDIO," + jugadormensaje; paqueteRespuesta.IdentificadorChat = IdentificadorDato.Resultado; byte[] buferTx = paqueteRespuesta.ObtenerArregloBytes(); socketCliente.BeginSendTo(buferTx, 0, buferTx.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); MessageBox.Show("Usted GANO"); break; case "perdio": nombre = txtNombre.Text; Paquete paqueteRespuesta2 = new Paquete(); paqueteRespuesta2.NombreChat = nombre; paqueteRespuesta2.MensajeChat = "GANO," + jugadormensaje; paqueteRespuesta2.IdentificadorChat = IdentificadorDato.Resultado; byte[] buferTx2 = paqueteRespuesta2.ObtenerArregloBytes(); socketCliente.BeginSendTo(buferTx2, 0, buferTx2.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); MessageBox.Show("Usted PERDIO"); break; case "empate": nombre = txtNombre.Text; Paquete paqueteRespuesta1 = new Paquete(); paqueteRespuesta1.NombreChat = nombre; paqueteRespuesta1.MensajeChat = "EMPATE," + jugadormensaje; paqueteRespuesta1.IdentificadorChat = IdentificadorDato.Resultado; byte[] buferTx1 = paqueteRespuesta1.ObtenerArregloBytes(); socketCliente.BeginSendTo(buferTx1, 0, buferTx1.Length, SocketFlags.None, epServidor, new AsyncCallback(ProcesarEnviar), null); MessageBox.Show("EMPATE"); break; } } else { Console.WriteLine("la partida continua"); } }