Пример #1
0
        private estadoConexion PruebaConexion()
        {
            MessageBox.Show("Prueba de Conexión de Cliente");
            estadoConexion resultado = estadoConexion.ok;
            String         testHttp = "GET /index.html HTTP/1.0\n\n";
            String         httpDoc = null; int cantRecibida = 0;

            Byte[]    bytesParaEnviar = Encoding.ASCII.GetBytes(testHttp);
            Byte[]    bytesParaRecibir = new Byte[1024]; string nombre = "";
            IPAddress IPPrueba = null; IPEndPoint extremoPrueba = null;
            TcpClient clientePrueba = null;

            try
            {
                IPPrueba      = Dns.GetHostEntry("www.epn.edu.ec").AddressList[0];
                extremoPrueba = new IPEndPoint(IPPrueba, 80);
            }
            catch (Exception ex)
            {
                Traza("Parece que el DNS no funciona...");
                resultado = ObtenerError(resultado, estadoConexion.problemaDns);
            }
            try
            {
                nombre = ((IPHostEntry)Dns.GetHostEntry("163.117.139.128")).HostName;
                TcpClient cliente = new TcpClient();
            }
            catch (Exception ex)
            {
                Traza("Problemas con los sockets...");
                return(ObtenerError(resultado, estadoConexion.problemaConSocket));
            }
            try
            {
                cliente.Connect(extremoPrueba);
                NetworkStream flujo = cliente.GetStream();
                flujo.Write(bytesParaEnviar, 0, bytesParaEnviar.Length);
                cantRecibida = flujo.Read(bytesParaRecibir, 0, bytesParaRecibir.Length);
            }
            catch (Exception ex)
            {
                Traza("Error en la conexión...");
                return(ObtenerError(resultado, estadoConexion.errorDeRedOInalcanzable));
            }
            httpDoc = Encoding.ASCII.GetString(bytesParaRecibir, 0, cantRecibida);
            Traza("Prueba finalizada"); return(resultado);
        }
Пример #2
0
 private estadoConexion ObtenerError(estadoConexion actual, estadoConexion siguiente)
 {
     Traza("Error Detectado");
     if (actual == estadoConexion.ok)
     {
         return(siguiente);
     }
     if (actual == estadoConexion.problemaDns)
     {
         if (siguiente == estadoConexion.problemaConSocket)
         {
             return(estadoConexion.problemaConDns_y_Socket);
         }
         else
         {
             return(siguiente);
         }
     }
     return(siguiente);
 }
Пример #3
0
        // Prueba la conexión
        private estadoConexion PruebaConexion()
        {
            // Guarda en los logs la prueba de conexión
            Traza("Prueba de Conexión de Cliente");

            // Define variables en la se almacenaran el nombre y puerto de los servidores
            //con los que se probara la conexión haciendo una petición del index.html al servidor
            estadoConexion resultado    = estadoConexion.ok;
            String         testHttp     = "GET /index.html HTTP/1.0\n\n";
            String         httpDoc      = null;
            int            cantRecibida = 0;

            Byte[]     bytesParaEnviar  = Encoding.ASCII.GetBytes(testHttp);
            Byte[]     bytesParaRecibir = new Byte[1024];
            string     nombre           = "";
            IPAddress  IPPrueba         = null;
            IPEndPoint extremoPrueba    = null;
            TcpClient  clientePrueba    = null;

            // Intenta resolver el nombre  www.epn.edu.ec y hace la conexion a su servidor.
            // de página web
            try
            {
                IPPrueba      = Dns.GetHostEntry("www.epn.edu.ec").AddressList[0];
                extremoPrueba = new IPEndPoint(IPPrueba, 80);
            }
            catch (Exception ex)
            {
                Traza("Parece que el DNS no funciona...");
                resultado = ObtenerError(resultado, estadoConexion.problemaDns);
            }

            // Intenta obtener el nombre asociado a la IP: 163.117.139.128
            try
            {
                nombre        = ((IPHostEntry)Dns.GetHostEntry("163.117.139.128")).HostName;
                clientePrueba = new TcpClient();
            }
            catch (Exception ex)
            {
                Traza("Problemas con los sockets...");
                return(ObtenerError(resultado, estadoConexion.problemaConSocket));
            }

            //Intenta contectarse al servidor de la EPN y solicitar su pagina web.

            try
            {
                clientePrueba.Connect(extremoPrueba);
                NetworkStream flujo = clientePrueba.GetStream();
                flujo.Write(bytesParaEnviar, 0, bytesParaEnviar.Length);
                cantRecibida = flujo.Read(bytesParaRecibir, 0, bytesParaRecibir.Length);
            }
            catch (Exception ex)
            {
                Traza("Error en la conexión...");
                return(ObtenerError(resultado, estadoConexion.errorDeRedOInalcanzable));
            }
            // Decodifica los datos recibidos desde el resivor
            httpDoc = Encoding.ASCII.GetString(bytesParaRecibir, 0, cantRecibida);
            Traza("Prueba finalizada");
            // Retorna el estado con el que se realizó la prueba
            return(resultado);
        }