Italian Presenza connessione internet

3394509365

Active Member
Licensed User
Longtime User
Hi visto sui forum ma ci sono tanti modi per vedere se c' è o no la connessione ad internet.

Chiedo a voi, devo solo aprire una pagina web e prendere dei dati. qual' è la soluzione più recente per verificare che la ci sia la rete internet?
 

giannimaione

Well-Known Member
Licensed User
Longtime User
come consiglia @ivanomonti cercate di specificare con quale "linguaggio" B4A, B4j ecc,
in B4A io utilizzo questo codice
B4X:
Dim server As ServerSocket 'libreria Network
Dim ip As String
    ip=server.GetMyIP
    If ip="127.0.0.1" Then
        Msgbox("Non sei connesso!","Errore")
    End If
la libreria da utilizzare è "Network"
 

udg

Expert
Licensed User
Longtime User
Nel tuo caso vale anche una considerazione che spesso avrai letto: sapere che il device abbia una connessione Internet ma non riuscire a raggiungere il server (o la pagina) che ti interessa ti pone comunque in una situazione di "errore".
Quindi meglio cercare di contattare la tua pagina/servizio/server piuttosto che uno generico (spesso si testa Google) o avere una generica indicazione che hai l'accesso ad Internet.

ps: potresti anche testare a cascata (prima Internet in generale e poi la pagina/server specifici), ma questo dipende dalla tua app.
 
Last edited:

amorosik

Expert
Licensed User
Nel tuo caso vale anche una considerazione che spesso avrai letto: sapere che il device abbia una connessione Internet ma non riuscire a raggiungere il server (o la pagina) che ti interessa ti pone comunque in una situazione di "errore".
Quindi meglio cercare di contattare la tua pagina/servizio/server piuttosto che uno generico (spesso si testa Google) o avere una generica indicazione che hai l'acecsso ad Internet.
ps: potresti anche testare a cascata (prima Internet in generale e poi la pagina/server specifici), ma questo dipende dalla tua app.


Basterebbe cercarne piu' d'uno, di siti web famosi
Se almeno n-1 rispondono allora la connessione c'e'
Perche' anche se testi il tuo sito web, non e' detto che in quel momento sia su
 

udg

Expert
Licensed User
Longtime User
Perche' anche se testi il tuo sito web, non e' detto che in quel momento sia su
Lo scopo è proprio quello. Se testo adesso il mio sito e questo risponde so che posso procedere (ovvio che possa andare giù un istante dopo, ma vale per tutti).
Se invece testo uno o più siti "famosi" so solo che adesso ho una connessione valida ad Internet, ma del mio sito non so nulla
 

Star-Dust

Expert
Licensed User
Longtime User
B4X:
Sub Connected As Boolean
    'Requires Phone Library
    Dim p As Phone
    Dim Response, Error As StringBuilder
    Response.Initialize
    Error.Initialize
    'Ping Google DNS - if you can't reach this you are in serious trouble!
    p.Shell("ping -c 1 8.8.8.8",Null,Response,Error)
    Log("======= Response ========")
    Log(Response)
    Log("======= Error ===========")
    Log(Error)
    Log("======================")

    If Error.ToString="" Then
        Return True
    Else
        Return False
    End If

End Sub
 

Star-Dust

Expert
Licensed User
Longtime User
B4X:
Sub MiaApp
    Wait For (check_rete) COMPLETE (Success As Boolean)
    Log($"Connessione: ${Success}"$)
End Sub


Sub check_rete As ResumableSub
    'Controllo se esiste la rete
    Dim j As HttpJob
    Dim IntCe As Boolean = False
    j.Initialize("", Me)
    j.GetRequest.Timeout = 2000
    j.Download("https://www.google.com")
    Wait For (j) JobDone(j As HttpJob)
    If j.Success Then
        IntCe=True
    End If
    j.Release
    
    Return IntCe
End Sub
 

amorosik

Expert
Licensed User
Lo scopo è proprio quello. Se testo adesso il mio sito e questo risponde so che posso procedere (ovvio che possa andare giù un istante dopo, ma vale per tutti).
Se invece testo uno o più siti "famosi" so solo che adesso ho una connessione valida ad Internet, ma del mio sito non so nulla

Veramente l'utente ha chiesto una funzione per verificare se c'e' connessione
Nel caso la verifica fosse finalizzata, ad esempio, ad aggiornare un applicativo scaricandolo da un certo sito web, allora ovviamente bisogna testare 'quel' sito e quindi la verifica si riduce alla possibilita' di collegarsi con www.ciucciamariuccia.com
Ma finche' non lo specifica illo, non possiamo presumere cosa ne fara' di questa funzione
Quindi direi che il testare piu' siti famosi e' la solussione "piu' meglio"
 

Star-Dust

Expert
Licensed User
Longtime User
Lo scopo è proprio quello. Se testo adesso il mio sito e questo risponde so che posso procedere (ovvio che possa andare giù un istante dopo, ma vale per tutti).
Se invece testo uno o più siti "famosi" so solo che adesso ho una connessione valida ad Internet, ma del mio sito non so nulla
Veramente l'utente ha chiesto una funzione per verificare se c'e' connessione
Nel caso la verifica fosse finalizzata, ad esempio, ad aggiornare un applicativo scaricandolo da un certo sito web, allora ovviamente bisogna testare 'quel' sito e quindi la verifica si riduce alla possibilita' di collegarsi con www.ciucciamariuccia.com
Ma finche' non lo specifica illo, non possiamo presumere cosa ne fara' di questa funzione
Quindi direi che il testare piu' siti famosi e' la solussione "piu' meglio"
Tutte due avete ragione, e si possono fare delle valutazioni del tutto diverse in situazioni diverse dipendenti dagli obiettivi da raggiungere, e sarebbero comunque valutazioni giuste.

Avendo fornito le funzioni, sia di verifica IP (wifi e GSM), sia con un PING e infine accedendo a una pagina WEB, e avendo letto le vostre osservazioni.... Adesso tocca a lui decidere cosa è meglio per la sua app ....... adesso annate a lavorà che l'italia va in bancarotta altrimenti ? ?
 

Star-Dust

Expert
Licensed User
Longtime User
StringBuilder?
Così era il codice in origine (non è farina del mio sacco) e io non l'ho modificato. Chiaramente basta String.
 

udg

Expert
Licensed User
Longtime User
Veramente l'utente ha chiesto una funzione per verificare se c'e' connessione
Chiede in effetti la semplice connessione, ma specifica anche
devo solo aprire una pagina web e prendere dei dati
e, per lo scopo dichiarato, la seconda include la prima vist che non potrà raggiungere quella pagina (nè nessun'altra) se manca la connessione del tutto.
 

Star-Dust

Expert
Licensed User
Longtime User
Sarà obbligatorio; uno StringBuilder darebbe errore.
Non ti saprei dire se genera errore. Io uso il secondo metodo.
 
Top