Velocidad de Internet.

Velocidad de Internet.

Postby JoseAlvarez » Sun Jun 02, 2024 5:49 pm

Hola a Todos Amigos,

Hace ya algunos años trato de que mis clientes se decanten por alojar sus datos en la nube, gracias a todas las ventajas que esto conlleva.
Mis aplicaciones son hechas en FW+HARBOUR y se instalan localmente, es decir, aplicaciones DESKTOP, como cualquier otra, pero toda la data se guarda y gestiona en la nube.

¿Hay alguna función en FW que me indique a que velocidad esta el internet al momento de ejecutarse el sistema?

Si no contamos con esa función nativa, ¿existe alguna aplicación de terceros que pueda integrar a mis aplicaciones de manera transparente ?

Sugiero (si no hay manera de saberlo) que se integre en las nuevas versiones de FW, por supuesto si es posible y si más usuarios lo consideran de utilidad.

Quedo pendiente para recibir ideas y sugerencias.

Gracias.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Velocidad de Internet.

Postby Antonio Linares » Sun Jun 02, 2024 7:19 pm

la web https://fast.com/ es el lugar ideal para medir la velocidad de internet.

Estamos viendo si podemos hacer una función que extraiga el valor automaticamente desde esa web
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Velocidad de Internet.

Postby Armando » Mon Jun 03, 2024 12:23 am

Antonio:

Muchas gracias.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Velocidad de Internet.

Postby JoseAlvarez » Mon Jun 03, 2024 2:14 am

Excelente maestro,

Con fivewin, siempre se puede !

Seguro que pronto lo tendremos!
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Velocidad de Internet.

Postby carlos vargas » Tue Jun 04, 2024 9:35 pm

Yo lo buscaría hacer con el componente twebview y con el URL de speedtest. Y lo íntegro en mi app.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Velocidad de Internet.

Postby JoseAlvarez » Wed Jun 05, 2024 12:55 am

carlos vargas wrote:Yo lo buscaría hacer con el componente twebview y con el URL de speedtest. Y lo íntegro en mi app.


Hola carlos, saludos.

Lo que deseo es obtener el valor de la velocidad, no visualizarlo.

Si te entendí bien, lo que me sugieres es para mostrar la web.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Velocidad de Internet.

Postby Garbi » Wed Jun 05, 2024 6:40 am

Hola,
No he podido investigar mucho, pero para otras cosas como descargar ficheros, yo lo hago por comandos.
Te pongo una URL donde te explica como hacerlo, supongo que si buscas un poco en la ayuda podrás saber como obtener el dato de la velocidad.

https://www.youtube.com/watch?v=NU15yYT2pwk

Ya nos dices si te ha servido.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 340
Joined: Wed Nov 02, 2005 3:28 pm

Re: Velocidad de Internet.

Postby Antonio Linares » Wed Jun 05, 2024 6:55 am

Este código debería funcionar pero algo le falla aún:
Code: Select all  Expand view
#include 'hbcurl.ch'

#define CURLOPT_URL    10002
#define CURLOPT_NOBODY 10013

PROCEDURE Main()
   LOCAL curl, res, url, startTime, endTime
   LOCAL speed

   url := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
   startTime := Seconds()

   curl := curl_easy_init()
   IF curl!= Nil
      curl_easy_setopt(curl, CURLOPT_URL, url)
      // curl_easy_setopt(curl, CURLOPT_NOBODY, 1) // solo obtener headers
      res := curl_easy_perform(curl)
      endTime := Seconds()
      IF res == 0
         speed := (endTime - startTime) / 60 // segundos a minutos
        ? "Velocidad de descarga:", speed * 1024, " KB/s"
      ELSE
        ? "curl_easy_perform() failed:", res, curl_easy_strerror(res)
      ENDIF
      curl_easy_cleanup(curl)
   ENDIF
   curl_global_cleanup()
RETURN
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Velocidad de Internet.

Postby JoseAlvarez » Wed Jun 05, 2024 10:36 am

Garbi wrote:Hola,
No he podido investigar mucho, pero para otras cosas como descargar ficheros, yo lo hago por comandos.
Te pongo una URL donde te explica como hacerlo, supongo que si buscas un poco en la ayuda podrás saber como obtener el dato de la velocidad.

https://www.youtube.com/watch?v=NU15yYT2pwk

Ya nos dices si te ha servido.


Gracias GARBI, agradecido por tu apoyo. Todas las ideas son bienvenidas.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Velocidad de Internet.

Postby JoseAlvarez » Wed Jun 05, 2024 10:53 am

Antonio Linares wrote:Este código debería funcionar pero algo le falla aún:
Code: Select all  Expand view
#include 'hbcurl.ch'

#define CURLOPT_URL    10002
#define CURLOPT_NOBODY 10013

PROCEDURE Main()
   LOCAL curl, res, url, startTime, endTime
   LOCAL speed

   url := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
   startTime := Seconds()

   curl := curl_easy_init()
   IF curl!= Nil
      curl_easy_setopt(curl, CURLOPT_URL, url)
      // curl_easy_setopt(curl, CURLOPT_NOBODY, 1) // solo obtener headers
      res := curl_easy_perform(curl)
      endTime := Seconds()
      IF res == 0
         speed := (endTime - startTime) / 60 // segundos a minutos
        ? "Velocidad de descarga:", speed * 1024, " KB/s"
      ELSE
        ? "curl_easy_perform() failed:", res, curl_easy_strerror(res)
      ENDIF
      curl_easy_cleanup(curl)
   ENDIF
   curl_global_cleanup()
RETURN


Perfecto master, haré las pruebas con este código y estaré comentando.

La idea con este dato es hacer lo mismo que muchas aplicaciones android que detectan la velocidad y avisan al usuario "su conexión a internet es débil", "su conexión presenta problemas" o "su conexión a internet es lenta".

De esta manera, estarán informados que la lentitud se debe a una mala calidad de su internet y no a mi aplicación.

Con la empresa y el plan de hosting que tengo contratado mi aplicación funciona al 100% con muy pero muy poco retardo en dar respuesta. Pero a veces la velocidad de internet varía, y algunos usuarios piensan que es por causa de la aplicación. Por eso es importante para mi que mi sistema les informe sobre el status de su conexión.

Se que en la mayoría de paises el servicio de internet funciona siempre de manera estable manteniendo la velocidad ofrecida por el proveedor, pero acá en Venezuela es una verdadera montaña rusa, literalmente.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Velocidad de Internet.

Postby Jimmy » Wed Jun 05, 2024 2:35 pm

hi.

there is a SPEED TEST AT Google
https://fiber.google.com/speedtest/
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: Velocidad de Internet.

Postby karinha » Wed Jun 05, 2024 3:02 pm

Tks, Jimmy.

Code: Select all  Expand view

// C:\FWH\SAMPLES\INTSPEED.PRG

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL cURL := "https://fiber.google.com/speedtest/"

   /* comprobamos si tenemos conexion a internet */
   IF .NOT. IsInternet()

      // MsgAlert( "Verifique Sua Internet.", "Internet Fora do Ar?" )
      MsgAlert( "Revise su Internet.", "¿Internet caído?")

      RETURN NIL

   ENDIF

   CursorWait()

   // Funcion modificada para que funcione con Windows 7
   ShellExecute( , "open", cURL )

   CursorArrow()

RETURN NIL

// FIN / END
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Velocidad de Internet.

Postby JoseAlvarez » Wed Jun 05, 2024 8:06 pm

Antonio Linares wrote:Este código debería funcionar pero algo le falla aún:
Code: Select all  Expand view
#include 'hbcurl.ch'

#define CURLOPT_URL    10002
#define CURLOPT_NOBODY 10013

PROCEDURE Main()
   LOCAL curl, res, url, startTime, endTime
   LOCAL speed

   url := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
   startTime := Seconds()

   curl := curl_easy_init()
   IF curl!= Nil
      curl_easy_setopt(curl, CURLOPT_URL, url)
      // curl_easy_setopt(curl, CURLOPT_NOBODY, 1) // solo obtener headers
      res := curl_easy_perform(curl)
      endTime := Seconds()
      IF res == 0
         speed := (endTime - startTime) / 60 // segundos a minutos
        ? "Velocidad de descarga:", speed * 1024, " KB/s"
      ELSE
        ? "curl_easy_perform() failed:", res, curl_easy_strerror(res)
      ENDIF
      curl_easy_cleanup(curl)
   ENDIF
   curl_global_cleanup()
RETURN


Master Antonio,

no encuentro ninguna de las funciones que comienzan por curl_

enlace las lib hbcurl y hbcurls pero no aparecen al compilar.

donde estan?
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Velocidad de Internet.

Postby Lailton » Thu Jun 06, 2024 12:25 am

Jose,

Las funciones curl_* es parte da library CURL.

https://curl.se/download.html

Se utiliza vcpkg pode instalar lo package curl con lo comando
Code: Select all  Expand view
vcpkg install curl
Regards,
Lailton Fernando Mariano
User avatar
Lailton
 
Posts: 153
Joined: Fri Jul 20, 2012 1:49 am
Location: Brazil

Re: Velocidad de Internet.

Postby Antonio Linares » Thu Jun 06, 2024 6:15 am

Funcionando bien gracias a Carles Aubia! :-)
Code: Select all  Expand view
#include 'hbcurl.ch'

#define CURLOPT_NOBODY 10013

function speed()
       
    local hCurl, nRet, uValue, hRows
    local lError        := .f.
    local cUrl          := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
   
   
    if ! empty( hCurl := curl_easy_init() )
     
        curl_easy_setopt( hCurl, HB_CURLOPT_DOWNLOAD )
        curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )    
       
        curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .f. )
        curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .f. )
        curl_easy_setopt( hCurl, HB_CURLOPT_FOLLOWLOCATION )        // Necesario para aquellos sitios que nos redirigen a otros

        curl_easy_setopt( hCurl, HB_CURLOPT_FILETIME, 1)
       
        //curl_easy_setopt(hCurl, CURLOPT_NOBODY, 1) // solo obtener headers
        curl_easy_setopt( hCurl, HB_CURLOPT_DL_FILE_SETUP, 'c:\temp\z.zip' )
        curl_easy_setopt( hCurl, HB_CURLOPT_NOPROGRESS, .t. )
        curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .f. )   
        curl_easy_setopt( hCurl, HB_CURLOPT_FAILONERROR , .t. )  // Change cUrl Dummy      
       
        nRet := curl_easy_perform( hCurl )
   
   
        if nRet == HB_CURLE_OK  //  HB_CURLE_OK == 0                   
         
            ? 'Size Download: ' +  ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_SIZE_DOWNLOAD )))
            ? 'Time: ' +  ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_TOTAL_TIME ))) + ' sec.'      //  receive the total time in seconds for the previous transfer, including name resolving, TCP connect etc.
            ? 'Bytes/sec: ' + ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_SPEED_DOWNLOAD )))     //  bytes/sec  
            ? 'Mb. Sec: ' + ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_SPEED_DOWNLOAD ) / 1024 /1024))
       
        else           
           lError := .t.
           ? 'Error: ' + curl_easy_strerror( nRet )
        endif            

        curl_easy_cleanup(hCurl)    
   
    endif
   
retu ! lError
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 89 guests