private void btnIngresar_Click(object sender, EventArgs e) { Thread.Sleep(500); IPAddress servidor = IPAddress.Parse("127.0.0.1"); int puerto = 8080; IPEndPoint extremo = new IPEndPoint(servidor, puerto); TcpClient cliente = new TcpClient(); cliente.Connect(extremo); NetworkStream flujoRed = cliente.GetStream(); Elemento elemento = new Elemento(txtuser.Text, txtPass.Text, 1); CodificadorTexto codificador = new CodificadorTexto(); byte[] datosCodificados = codificador.Codificar(elemento); flujoRed.Write(datosCodificados, 0, datosCodificados.Length); DecodificadorTexto decodificador = new DecodificadorTexto(); ElementoLogin elementoRecibido = decodificador.DecodificarLogin(cliente.GetStream()); if (elementoRecibido.validacion == 1) { emlog.nombre = elementoRecibido.nombre; emlog.apellido = elementoRecibido.apellido; frmJornada n1 = new frmJornada(); n1.Show(); } else { MessageBox.Show("Usuario no encontrado", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); limpiarCampos(); txtuser.Focus(); } flujoRed.Close(); cliente.Close(); }
static void Main(string[] args) { //tiempo para dormir el proceso Thread.Sleep(500); // se define la ip del servidor a conectarse IPAddress servidor = IPAddress.Parse("127.0.0.1"); //se especifica el puerto por el cual debe conectarse int puerto = 8082; //se crea un pnto remoto que será el servidor al que nos conectaremos IPEndPoint extremo = new IPEndPoint(servidor, puerto); //se crea un cliente tcp para proceder a la solicitud de conexión conexión TcpClient cliente = new TcpClient(); cliente.Connect(extremo); //Se llama al método get stream usando network stream para envío y //recepción de bytes NetworkStream flujoRed = cliente.GetStream(); // Se crean los elementos que serán enviados Elemento elemento = new Elemento(1234567890987654L, "Cadena de Bicicleta", 18, 1000, true, false); //se procede a la codificación del elemento, y se los transforma en bytes para su envío CodificadorTexto codificador = new CodificadorTexto(); byte[] datosCodificados = codificador.Codificar(elemento); Console.WriteLine("Enviando elemento codificado en texto (" + datosCodificados.Length + " bytes): "); Console.WriteLine(elemento); // se procede a recuperar los datos enviados. flujoRed.Write(datosCodificados, 0, datosCodificados.Length); DecodificadorBinario decodificador = new DecodificadorBinario(); Elemento elementoRecibido = decodificador.Decodificar(cliente.GetStream()); Console.WriteLine("Se recibio un elemento codificado en formato binario:"); Console.WriteLine(elementoRecibido); // ### Modifica el programa para enviar dos elementos y recibir dos elementos. // ### Si se requiere ver el funcionamiento original del programa comente las siguientes // ### lineas hasta encontrar la linea //### elemento = new Elemento(1234567890123456L, "Bicicleta", 18, 50000, true, true); //se procede a la codificación del elemento, y se los transforma en bytes para su envío codificador = new CodificadorTexto(); datosCodificados = codificador.Codificar(elemento); Console.WriteLine("Enviando elemento codificado en texto (" + datosCodificados.Length + " bytes): "); Console.WriteLine(elemento); // se procede a recuperar los datos enviados. flujoRed.Write(datosCodificados, 0, datosCodificados.Length); decodificador = new DecodificadorBinario(); elementoRecibido = decodificador.Decodificar(cliente.GetStream()); Console.WriteLine("Se recibio un elemento codificado en formato binario:"); Console.WriteLine(elementoRecibido); //### //se Cierra el network stream para finalizar la conexión adecuadamente flujoRed.Close(); //se cierra la conexión con el cliente cliente.Close(); }
static void Main(string[] args) { //Tiempo que pasa dormido el cliente Thread.Sleep(500); //Creamos el socket para poder comunicarnos con el servidor IPAddress servidor = IPAddress.Parse("127.0.0.1"); int puerto = 8080; IPEndPoint extremo = new IPEndPoint(servidor, puerto); //Creamos un cliente TCP y nos conectamos TcpClient cliente = new TcpClient(); cliente.Connect(extremo); //Nos proporciona la secuencia de datos para el acceso a la red NetworkStream flujoRed = cliente.GetStream(); Elemento elemento1 = new Elemento(1234567890987654L, "Cadena de Bicicleta", 18, 1000, true, false); //Modifiacion para enviar dos elementos Elemento elemento2 = new Elemento(987654321012345L, "Casco de Bicicleta", 20, 45, true, true); //Utilizamos la libreria que creamos con el metodo Codificador Texto CodificadorTexto codificador = new CodificadorTexto(); byte[] datosCodificados = codificador.Codificar(elemento1); Console.WriteLine("Enviando elemento codificado en texto (" + datosCodificados.Length + " bytes): "); Console.WriteLine(elemento1); NetworkStream flujoRed2 = cliente.GetStream(); CodificadorTexto codificador1 = new CodificadorTexto(); byte[] datosCodificados1 = codificador1.Codificar(elemento2); Console.WriteLine("Enviando elemento codificado en texto (" + datosCodificados1.Length + " bytes): "); Console.WriteLine(elemento2); //Procedemos a enviar los datos por la red flujoRed.Write(datosCodificados, 0, datosCodificados.Length); flujoRed2.Write(datosCodificados1, 0, datosCodificados1.Length); //Como tenemos un servidor ECO, ahora tenemos que realizar el rproceso contrario, el decodificador. DecodificadorBinario decodificador = new DecodificadorBinario(); Elemento elementoRecibido = decodificador.Decodificar(cliente.GetStream()); DecodificadorBinario decodificador1 = new DecodificadorBinario(); Elemento elementoRecibido1 = decodificador1.Decodificar(cliente.GetStream()); //Impresion del texto recibido Console.WriteLine("Se recibio un elemento codificado en formato binario:"); Console.WriteLine(elementoRecibido); Console.WriteLine("Se recibio un elemento codificado en formato binario:"); Console.WriteLine(elementoRecibido1); flujoRed.Close(); cliente.Close(); }