salve a tutti,
sono nuovissimo sia di questo forum che di MS Visual Studio 2010.
Senza troppi preamboli vorrei esporvi il mio problema.
---- PROBLEMA: -----
- riesco ad avere la conferma di connessione internet ATTIVA in pochi attimi ma ...
- ci vogliono oltre 10 secondi per avere la conferma di una connessione NON ATTIVA
Sto tentato di imparare a programmare in Visual Basic (con la nuova versione 2010) e vi assicuro sto trovando seri problemi nel passaggio dal VB6 ma un poco alla volta sto risolvendo le difficoltà che incontro.
Ora sto cercardo di capire come fare ad usare un codice che prima di caricare o scaricare files dal mio spazio FTP di libero-digiland, mi faccia una verifica se sono connesso ad internet.
Ho fatto tante ricerche su Google e forum specializzati e finora ho trovato diverse soluzioni che funzionano perfettamente quando il pc su cui sta girando il mio esempio è connesso ad internet.
Sono velocissime a darmi delle conferme di connessione sopratutto quelle soluzioni che fanno dei ping-test su siti notissimi tipo www .google. it e .com ma sopratutto con www .libero . it
Di diversi decimi di secondo più lente le risposte-ping da tiscali, yahoo, fastweb e virgilio.
Quindi tutto funziona a MERAVIGLIA quando la connessione è attiva ma se mentre il test sta girando stacco il cavo telefonico dal mio router devo mediamente aspettare 14 secondi per avere la risposta che mi aspettavo di "NON CONNESSIONE"
Non credo serva mostravi i miei tentativi vani fatti finora ma per evitare di usare funzioni, procedure e Api e vespe e calabroni che ho già provato, ve le riassumo solo brevemente:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Integer, ByVal dwReserved As Integer) As Boolean ....
oppure
My.Computer.Network.Ping
oppure
Public Function IsConnectionAvailable() As Boolean
Dim objUrl As New System.Uri("http://www.google.com") .... ect ect
oppure
zzz = System.Text.Encoding.ASCII.GetString((WC.DownloadD ata(myIPsite)))
(provando a scaricare un file che ... se riesce mi dice che la connesione c'è)
ho provato pure a pingare dal prompt di dos salvando la risposta in un file di testo così:
PIDexe = Shell("cmd /c ping -n 1 www . google . it >c:\file1.txt",,true)
per poi leggerlo immediatamente verificando se il ping (un solo tentativo ecco perchè -n 1) era riuscito oppure fallito .... ma anche in questo caso se la connessione è attiva ho una risposta in pochi instanti invece se il ruoter è 'spento' o il cavo lan è staccato per avere una risposta negativa devo attendere quasi 15 secondi.
Secondo me il problema è che se non c'è connessione, il sistema si ostina a provare troppo a lungo perciò sarebbe anche interessante trovare un modo per ridurre questa ostinazione al massimo ad un paio di secondi magari terminando il processo di PING lanciato prima ... ma da solo non riesco a farlo
Ma sicuramente voi conoscete un sistema più rapido, sicuro e collaudato, ci sarà qualche Api magica che fa tutto in un attimo ... vero?
Io la sto cercando da giorni e non la trovo ... e sono qui in fiduciosa attesa.
...GRAZIE per l'attenzione
lucio