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(); }