none
salto de carro desde una aplicación de consola ha otra "Socket" RRS feed

  • Pregunta

  • Hola buenos días mis estimados, este es mi problemita, tengo una aplicacion de consola que realiza una serie de métodos, estos métodos se ejecutan si pasas la cantidad de parámetros correctos que hacen que funcione, osea colocas el comando, le das enter y se ejecuta la función, pero se me pidió crear otra aplicación que desde otra maquina se comunique con la primera y mande los comandos y la otra los reciba y los ejecute, resolví hacer esto con Socket y realizo mi comunicación de forma exitosa, pero la aplicación que recibe el comando exitosamente, osea se refleja la cadena, no lo ejecuta, osea se refleja la linea, pero, nose como hacerle el enter desde la otra aplicación, para que ejecute el comando, les paso el codigo que hace la comunicacion.

     private static void envioComando(string strComando)
            {
                Socket miPrimerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint miDireccion = new IPEndPoint(IPAddress.Parse("192.168.42.128"), 1234);
                byte[] textoEnviar;
                try
                {
                    miPrimerSocket.Connect(miDireccion);
                    Console.WriteLine("Conectado con Aplicacion");
                    Console.WriteLine("Ingrese el comando: ");
                    strComando = Console.ReadLine(); //leemos el texto ingresado
                    textoEnviar = Encoding.Default.GetBytes(strComando); //pasamos el texto a array de bytes
                    miPrimerSocket.Send(textoEnviar, 0, textoEnviar.Length, 0); // y lo enviamos
                    Console.WriteLine("Enviado exitosamente");
                    miPrimerSocket.Close();
                }
                catch (Exception error)
                {
                    Console.WriteLine("Error: {0}", error.ToString());
                }

            }

     private static  void RecibeComando()
            {
                byte[] ByRec;
                Socket miPrimerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint miDireccion = new IPEndPoint(IPAddress.Any, 1234);
                try
                {
                    miPrimerSocket.Bind(miDireccion);
                    miPrimerSocket.Listen(1);
                    Socket Escuchar = miPrimerSocket.Accept();
                    ByRec = new byte[255];
                    int a = Escuchar.Receive(ByRec, 0, ByRec.Length, 0);
                    Array.Resize(ref ByRec, a);
                    Console.WriteLine("C:\\Debug\\" + Encoding.Default.GetString(ByRec)); //mostramos lo recibido, comando
                    miPrimerSocket.Close();
                }
                catch (Exception error)
                {
                    Console.WriteLine("Error: {0}", error.ToString());
                }
            }

    martes, 12 de junio de 2018 15:12