예제 #1
0
        public void Ejecutar()
        {
            int          puerto   = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);
            ServerSocket servidor = new ServerSocket(puerto);

            Console.WriteLine("S: Levantando servidor en puerto {0}", puerto);
            if (servidor.Iniciar())
            {
                while (true)
                {
                    Console.WriteLine("S: Esperando Cliente..");
                    Socket cliente = servidor.ObtenerCliente();
                    Console.WriteLine("S: Cliente recibido");

                    ClienteCom   clienteCom    = new ClienteCom(cliente);
                    HebraCliente clienteThread = new HebraCliente(clienteCom);
                    Thread       t             = new Thread(new ThreadStart(clienteThread.Ejecutar));
                    t.IsBackground = true;
                    t.Start();
                }
            }
            else
            {
                Console.WriteLine("Error, no se puede levantar server en {0}", puerto);
            }
        }
예제 #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())
            {
                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);
            }
        }
예제 #3
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);
            }
        }
예제 #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
        /// <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();
        }
예제 #6
0
        static void Main(string[] args)
        {
            int puerto = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);

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

            if (serverSocket.Iniciar())
            {
                while (true)
                {
                    //luego de iniciar el servidor queda esperando....
                    Console.WriteLine("Esperando clientes...");
                    Socket socket = serverSocket.ObtenerCliente();
                    Console.WriteLine("Cliente recibido");
                    // comunicarse con el cliente
                    ClienteCom clienteCom = new ClienteCom(socket);
                    GenerarComunicacion(clienteCom);
                }
            }
            else
            {
                Console.WriteLine("Error al tomar posesion del puerto{0}", puerto);
            }
        }
예제 #7
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);
            }
        }
예제 #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 Levantar()
        {
            int          puerto   = Convert.ToInt32(ConfigurationManager.AppSettings["puerto"]);
            ServerSocket servidor = new ServerSocket(puerto);

            Console.WriteLine("Se está levantando el Server en puerto {0}", puerto);
            if (servidor.Iniciar())
            {
                while (true)
                {
                    Console.WriteLine("Esperando Cliente...");
                    Socket       cliente      = servidor.ObtenerCliente();
                    ClienteCom   clienteCom   = new ClienteCom(cliente);
                    HebraCliente clienteHebra = new HebraCliente(clienteCom);
                    Thread       t            = new Thread(new ThreadStart(clienteHebra.Ejecutar));
                }
            }
        }
예제 #10
0
 public HebraCliente(ClienteCom clienteCom)
 {
     this.clienteCom = clienteCom;
 }