예제 #1
0
        public void Ejecutar()
        {
            string mensaje;

            mensaje = clienteCom.Leer();
            string[] textoArr     = mensaje.Trim().Split('|');
            int      idMedidor    = Convert.ToInt32(textoArr[0]);
            DateTime fecha        = DateTime.ParseExact(textoArr[1], "yyyy-MM-dd-HH-mm-ss", null);
            decimal  valorConsumo = Convert.ToDecimal(textoArr[2]);

            Lectura l = new Lectura()
            {
                IdMedidor    = idMedidor,
                Fecha        = fecha,
                ValorConsumo = valorConsumo
            };
            List <Medidor> medidores = medidoresDAL.ObtenerMedidor().FindAll(m => m.Id == idMedidor);

            if (medidores.Count > 0)
            {
                lock (lecturasDAL)
                {
                    lecturasDAL.IngresarLectura(l);
                }
                clienteCom.Escribir("OK");
            }
            else
            {
                clienteCom.Escribir("ERROR");
            }

            clienteCom.Desconectar();
        }
예제 #2
0
        static void Main(string[] args)
        {
            int puerto = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);

            Console.WriteLine("Iniciando Servidor en puerto{0} ", puerto);
            ServerSocket servidor = new ServerSocket(puerto);

            if (servidor.Iniciar())
            {
                //OK, puede conectar
                Console.WriteLine("Servidor Iniciando");

                while (true)    //Solicitando clientes infinitamente
                {
                    Console.WriteLine("Esperando Cliente...");
                    Socket socketCliente = servidor.ObtenerCliente();

                    ClienteCom cliente = new ClienteCom(socketCliente);
                    cliente.Escribir("Hola Mundo cliente, dime tu nombre : ");
                    string respuesta = cliente.Leer();
                    Console.WriteLine("El cliente dice: {0} ", respuesta);
                    cliente.Escribir("Chaolin , nos vemos " + respuesta);
                    cliente.Desconectar();
                }
            }
            else
            {
                Console.WriteLine("Error, el puerto{0} es en uso ", puerto);
            }
        }
예제 #3
0
        public void Ejecutar()
        {
            string mensaje;

            mensaje = clienteCom.Leer();
            string[] tArr    = mensaje.Trim().Split('|');
            int      NroMed  = Convert.ToInt32(tArr[0]);
            DateTime fecha   = Convert.ToDateTime(tArr[1]);
            double   consumo = Convert.ToDouble(tArr[2]);

            Lectura l = new Lectura()
            {
                NroMedidor = NroMed,
                Fecha      = fecha,
                Consumo    = consumo
            };
            List <Medidor> medidor = medidorDAL.ObtenerMedidor().FindAll(m => m.IdMedidor == NroMed);

            if (medidor.Count > 0)
            {
                lock (lecturaDAL)
                {
                    lecturaDAL.AgregarLectura(l);
                }
                clienteCom.Escribir("LISTO");
            }
            else
            {
                clienteCom.Escribir("ERROR");
            }

            clienteCom.Desconectar();
        }
예제 #4
0
        static void Main(string[] args)
        {
            int puerto = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);

            Console.WriteLine("Iniciando Servidor en puerto {0}", puerto);

            ServerSocket servidor = new ServerSocket(puerto);

            if (servidor.Iniciar())
            {
                //OK puede conectar
                Console.WriteLine("Servidor iniciado");
                while (true)
                {
                    Console.WriteLine("Esperando Cliente...");
                    Socket socketCliente = servidor.ObtenerCliente();
                    //Construir el mecanismo para escribirle y leerle
                    ClienteCom cliente = new ClienteCom(socketCliente);
                    //aqui ira el protocolo de comunicacion, para ambos luego conocerlo
                    cliente.Escribir("Hola Mundo cliente, dime tu nombre???");
                    string respuesta = cliente.Leer();
                    Console.WriteLine("El cliente dijo: {0} ", respuesta);
                    cliente.Escribir("Chaoo loco nos vemos otro dia" + respuesta);
                    cliente.Desconectar();
                }
            }
            else
            {
                Console.WriteLine("Error, el puerto {0} es en uso", puerto);
            }
        }
예제 #5
0
        static void Main(string[] args)
        {
            int puerto = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);

            Console.WriteLine("Iniciando Servidor en puerto {0}", puerto);
            ServerSocket servidor = new ServerSocket(puerto);

            if (servidor.Iniciar())
            {
                Console.WriteLine("[Info] Servidor iniciado correctamente.");
                while (true)
                {
                    Console.WriteLine("[Info] Esperando Cliente...");
                    Socket     socketcliente = servidor.ObtenerCliente();
                    ClienteCom cliente       = new ClienteCom(socketcliente);
                    cliente.Escribir("Hola Mundo cliente, dime tu nombre:");
                    string respuesta = cliente.Leer();
                    Console.WriteLine("[Cliente] {0}", respuesta);
                    cliente.Escribir("Chao, loh vimoh " + respuesta);
                    cliente.Desconectar();
                }
            }
            else
            {
                Console.WriteLine("[Error] El puerto {0} está en uso", puerto);
            }
        }
예제 #6
0
        static void Main(string[] args)
        {
            int puerto = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);

            Console.WriteLine("Iniciando Servidor en puerto {0}", puerto);
            ServerSocket servidor = new ServerSocket(puerto);

            if (servidor.Iniciar())
            {
                //Ok, pude conectar
                Console.WriteLine("Servidor iniciado");
                //Solicitando clientes infinitamente
                while (true)
                {
                    Console.WriteLine("Esperando Cliente");
                    Socket socketCliente = servidor.ObtenerCliente();
                    //Construir el mecanismo para escribirle y leerle
                    ClienteCom cliente = new ClienteCom(socketCliente);
                    //aqui está el protocolo de comunicación, ambos deben conocerlo
                    cliente.Escribir("Hola Mundo cliente, dime tu nombre:");
                    string respuesta = cliente.Leer();
                    Console.WriteLine("El cliente mandó:{0}", respuesta);
                    cliente.Escribir("Chao, loh vimoh " + respuesta);
                    cliente.Desconectar();
                }
            }
            else
            {
                Console.WriteLine("Error, el puerto {0} está en uso", puerto);
            }
        }
예제 #7
0
        /// <summary>
        /// Inicia una conversación con un Cliente hasta que algun
        /// extremo de la comunicación se despida, con un chao
        /// </summary>
        /// <param name="clienteCom"></param>
        static void GenerarComunicacion(ClienteCom clienteCom)
        {
            bool terminar = false;

            while (!terminar)
            {
                string mensaje = clienteCom.Leer();
                if (mensaje != null)
                {
                    Console.WriteLine("C:{0}", mensaje);
                    if (mensaje.ToLower() == "chao")
                    {
                        terminar = true;
                    }
                    else
                    {
                        Console.Write("Ingrese Respuesta:");
                        mensaje = Console.ReadLine().Trim();
                        clienteCom.Escribir(mensaje);
                        if (mensaje.ToLower() == "chao")
                        {
                            terminar = true;
                        }
                    }
                }
                else
                {
                    terminar = false;
                }
            }
            clienteCom.Desconectar();
        }
예제 #8
0
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Blue;
            int puerto = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);

            Console.WriteLine("Iniciando Servidor en la ip 10.22.42.192 en puerto {0}", puerto);
            ServerSocket servidor = new ServerSocket(puerto);

            if (servidor.Iniciar())
            {
                Console.WriteLine("Servidor iniciado");

                while (true)
                {
                    Console.WriteLine("Esperando Cliente...");
                    Socket socketCliente = servidor.ObtenerCliente();

                    ClienteCom           cliente  = new ClienteCom(socketCliente);
                    RegistrosDALArchivos registro = new RegistrosDALArchivos();
                    string        mensaje;
                    List <string> mensajes = new List <string>();
                    try
                    {
                        while (true)
                        {
                            Console.WriteLine("Esperando mensaje...");
                            mensaje = cliente.Leer();
                            mensajes.Add("C;" + mensaje);
                            if (mensaje.ToLower() == "chao")
                            {
                                throw new Exception();
                            }
                            Console.WriteLine("[Cliente] {0}", mensaje);
                            Console.Write("Escriba un mensaje\n> ");
                            mensaje = Console.ReadLine().Trim();
                            cliente.Escribir(mensaje);
                            mensajes.Add("S;" + mensaje);
                            if (mensaje.ToLower() == "chao")
                            {
                                throw new Exception();
                            }
                        }
                    } catch (Exception ex)
                    {
                        cliente.Desconectar();
                        registro.GenerarRegistro(mensajes);
                        Console.WriteLine("[Info] Cliente se a desconectado");
                    }
                }
            }
            else
            {
                Console.WriteLine("Error, el puerto {0} está en uso", puerto);
            }
        }
예제 #9
0
        public void Ejecutar()
        {
            clienteCom.Escribir("Ingrese nombre: ");
            string nombre = clienteCom.Leer();

            clienteCom.Escribir("Ingrese texto: ");
            string  texto   = clienteCom.Leer();
            Mensaje mensaje = new Mensaje()
            {
                Nombre = nombre,
                Texto  = texto,
                Tipo   = "TCP"
            };

            lock (mensajesDAL)
            {
                mensajesDAL.AgregarMensaje(mensaje);
            }

            clienteCom.Desconectar();
        }