コード例 #1
0
        private void InicializarFormulario()
        {
            try
            {
                int Conf = Config.ObtenerTipoConfiguracion();
                ConfiguracionSeleccionada = Conf == 0 ? 2 : Conf;
                SeleccionarConfiguracion();

                if (ConfiguracionSeleccionada == 1)
                {
                    Txt_Nombre.Text = Config.ObtenerNombreServidor();
                }

                InterfazNet Net = new InterfazNet();
                Net.BuscarEquiposEnRed().Cast <string>().ToList()
                .FindAll(E => E != NombreEquipo)
                .ForEach(E => Cmb_Equipos.Items.Add(E));

                HWND_TaskBar    = ExtensionesCOM.FindWindow("Shell_TrayWnd", null);
                HWND_Inicio     = ExtensionesCOM.FindWindow("BUTTON", null);
                HWND_TrayNotify = ExtensionesCOM.FindWindowEx(HWND_TaskBar, 0, "TrayNotifyWnd", null);
                HWND_Iconos     = ExtensionesCOM.FindWindowEx(HWND_TrayNotify, 0, "Syspager", null);
                HWND_Reloj      = ExtensionesCOM.FindWindowEx(HWND_TrayNotify, 0, "TrayClockWClass", null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #2
0
        public void ConectarCon(int Puerto)
        {
            try
            {
                TcpClient Cliente;
                string    Equipo = "";

                TcpListener Listen = new TcpListener(IPAddress.Any, Puerto);
                Listen.Start();
                while (true)
                {
                    if (Listen.Pending())
                    {
                        Cliente           = Listen.AcceptTcpClient();
                        ContenidoRecibido = InterfazNet.Get(ClienteConectar);

                        if (ContenidoRecibido.StartsWith("H"))
                        {
                            Equipo = ContenidoRecibido.Substring(1);
                        }

                        AgregarCliente(Equipo, Puerto, Cliente);
                        break;
                    }
                    Thread.Sleep(100);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("No se puede ocupar el mismo socket");
            }
        }
コード例 #3
0
 private void EnviarOrdenaCliente(TcpClient ClienteSel, string Orden)
 {
     try
     {
         InterfazNet.Send(ClienteSel, Orden);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #4
0
        private void Tmr_Servidor_Tick(object sender, EventArgs e)
        {
            int Puerto;

            //inicia la escucha
            Server.Start();
            //si hay solicitudes de conexion pendientes
            if (Server.Pending())
            {
                //obtenemos el cliente tcp
                ClienteConectar = Server.AcceptTcpClient();

                Puerto = ObtenerPuertoDisponible();
                InterfazNet.Send(ClienteConectar, Puerto.ToString());
                ConectarCon(Puerto);
                ClienteConectar.Close();
                ClienteConectar = new TcpClient();
            }
            Tmr_Cliente.Enabled = true;
        }
コード例 #5
0
        private void VerificarConexionCliente(ENT.Terminal_ENT Equipo)
        {
            try
            {
                bool EstaActivo = InterfazNet.ValidarConexion(Equipo.TCP);

                if (!EstaActivo)
                {
                    if (Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Apagado)
                    {
                        EliminarConexionCliente(Equipo);
                    }
                }

                Ctrl_Terminales.EncontrarControlXNombre(Equipo.Equipo).ActualizarControles();
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
        private void Tmr_Cliente_Tick(object sender, EventArgs e)
        {
            try
            {
                List <ENT.Terminal_ENT> ClientesBuscar = Equipos.FindAll(E => E.TCP != null);
                string Puerto;
                int    EstadoFactura = 3;
                string HoraSalida    = DateTime.Now.ToLongTimeString();
                Configuraciones = new BLL.Configuraciones.AdminConfiguraciones_BLL();
                CTRL.Terminal_CTRL EquipoSel;

                Btn_ApagarEquipos.Enabled = (Equipos.Count > 0);

                foreach (ENT.Terminal_ENT cClient in ClientesBuscar)
                {
                    if (cClient.TCP != null && cClient.TCP.Available > 0)
                    {
                        EquipoSel         = Ctrl_Terminales.EncontrarControlXNombre(cClient.Equipo);
                        ContenidoRecibido = InterfazNet.Get(cClient.TCP);
                        if (ContenidoRecibido.StartsWith("BB"))
                        {
                            Puerto = ContenidoRecibido.Substring(2);

                            //validamos que el sistema tenga habilitado tiempo de ocio para los equipos y
                            //que el tiempo consumido no este dentro del tiempo de ocio
                            if (Configuraciones.EstaTiempoOcioActivo() &&
                                Convert.ToInt32(EquipoSel.Equipo.TiempoConsumido.TotalMinutes) <= ENT.TiposAnidados_ENT.MinutosOcio)
                            {
                                MessageBox.Show("El Equipo " + cClient.Equipo + " Consumió Un Tiempo Inferior Al Tiempo De Ocio, Razón Por La Que El Tiempo No Ha Sido Facturado", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                Factura.Guardar(cClient, Hoy.ToShortDateString(), HoraSalida, Usuario.Usuario, EstadoFactura);
                                MessageBox.Show("El Tiempo Consumido : " + Convert.ToInt32(cClient.TiempoConsumido.TotalMinutes).ToString()
                                                + " Min \r Equipo Utilizado : " + cClient.Equipo
                                                + " \r Hora Inicio : " + cClient.HoraInicio.ToLongTimeString()
                                                + " \r Hora Salida : " + HoraSalida
                                                + " \r Total : " + cClient.TotalFacturar, "Orden Facturada", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                cClient.ReiniciarFactura();
                                EquipoSel.Equipo.ReiniciarFactura();
                                EquipoSel.ActualizarControles();
                            }
                        }
                        else if (ContenidoRecibido.StartsWith("TF"))
                        {
                            //si el servidor recibe pero el cliente aparece conectado en estado distinto,
                            //se procede a buscar el ultimo registro de factura para el cliente y continuar.
                            if (cClient.Estado == ENT.TiposAnidados_ENT.EstadoTerminal.Apagado
                                | cClient.Estado == ENT.TiposAnidados_ENT.EstadoTerminal.Disponible)
                            {
                                Factura.ObtenerFactura(cClient);
                                EquipoSel.CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado);
                            }

                            String tiempo = ContenidoRecibido.Substring(2);
                            cClient.TiempoConsumido = new TimeSpan(Convert.ToInt32(tiempo.Substring(0, 2))
                                                                   , Convert.ToInt32(tiempo.Substring(3, 2))
                                                                   , Convert.ToInt32(tiempo.Substring(6, 2)));
                            cClient.TiempoConsumido          = cClient.TiempoConsumido.Add(new TimeSpan(0, 0, 1));
                            EquipoSel.Equipo.TiempoConsumido = cClient.TiempoConsumido;
                            EquipoSel.Equipo.Valor           = Factura.ValorXTiempoConsumido(Convert.ToInt32(EquipoSel.Equipo.TiempoConsumido.TotalMinutes));
                            EquipoSel.ActualizarControles();
                        }
                        else if (ContenidoRecibido.StartsWith("SS"))
                        {
                            Puerto = ContenidoRecibido.Substring(2);
                            EliminarConexionCliente(cClient);
                        }
                    }
                }
            }
            catch (Exception) { }
        }