Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [VB.NET] Problema Ping

  1. #1
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186

    [VB.NET] Problema Ping

    Buongiorno, devo pingare due dispositivi per controllarne la connessione.

    Questo è il mio ciclo, il quale è messo all'interno di un Timer che esegue un Tick ogni 1000ms.
    Il Timeout per il ping è impostato a 500ms

    codice:
    Private Async Sub doPing(ipHost As String, timeout As Integer, Optional tentativi As Integer = 1)
    
    
            Dim totalPingsToTry As Integer = tentativi
            Dim successCount As Integer
    
    
            Using myPinger As New Ping
                For counter As Integer = 1 To totalPingsToTry
                    Try
                        Dim myReply As PingReply = Await myPinger.SendPingAsync(ipHost, timeout)
                        If myReply.Status = IPStatus.Success Then
                            successCount += 1
                        End If
                    Catch ex As Exception
                        'Ping Failed
                    End Try
                Next
            End Using
    
    
            If successCount / totalPingsToTry >= 0.7 Then
                
                If disconnesso = True Then
                    riconnetti()
                    disconnesso = False
                End If
    
    
            Else
    
    
                disconnesso = True
                registraEvento("DISPOSITIVO NON CONNESSO", 0)
    
    
            End If
    
    
        End Sub
    Il problema è che spesso, una volta ogni 10 minuti almeno, mi segnala connessione caduta, quando in realtà è presente.
    Ho provato anche a controllare continuamente con ping -t con il prompt ed effettivamente col prompt non salta un colpo, mentre con VB.NET salta spesso.

    Avete idee su come poter risolvere?

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,254
    Logga l'eccezione nel trycatch per verificare che errori restituisce.

  3. #3
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Ho già provato, ma non entra mai nella catch...
    Ho però notato una cosa, forse è una casualità.

    Prima avevo impostato 3 tentativi e 500ms di timeout su un Timer da 1000ms.

    Ora ho messo il timeout da 100ms e 5 tentativi e non l'ha più fatto!

    Non credo dipenda molto dal numero di tentativi che renderebbe solamente l'analisi più precisa, ma dal timeout.

    Forse quando dava il problema, non faceva in tempo a restituire l'ok, anche se, nel caso il dispositivo sia collegato, non dovrebbe mai raggiungere i 500ms, soprattutto perchè è tutto cablato in GigE e senza altro nella rete a disturbare.

  4. #4
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,254
    E lo status quando va in errore cosa restituisce? (timeout?)

  5. #5
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Scusa ma ho avuto delle giornate piene!
    Si esatto, mi restituisce timeout!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.