astobelix
Messages postés4Date d'inscriptionjeudi 16 août 2007StatutMembreDernière intervention 8 septembre 2017
-
27 janv. 2015 à 11:16
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
27 janv. 2015 à 12:12
Bonjour,
je désire créer un programme qui testerai le ping vers 2 serveurs distinct et afficher le résultat dans la fenêtre ( je débute sur VB ) , j'ai bien créer mon programme mais lorsque je débute le test de Ping j'obtiens genre une valeur de "58ms" alors que lorsque je ping directement depuis le cmd j'ai un ping de "20ms" d'où peut venir ce problème ?
je vous donne le code en question :
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ip As String
Dim sw As New Stopwatch
If My.Computer.Network.Ping("eu.server.warface.com") Then
sw.Start()
My.Computer.Network.Ping("eu.server.warface.com")
sw.Stop()
Label1.Text = "elapsed time: " & (sw.ElapsedMilliseconds) & "ms"
Else
MsgBox("request timeout")
Label1.Text = " Elapsed Time Not Available"
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ip As String
Dim sw As New Stopwatch
If My.Computer.Network.Ping("us.server.warface.com") Then
sw.Start()
My.Computer.Network.Ping("us.server.warface.com")
sw.Stop()
Label2.Text = "elapsed time: " & (sw.ElapsedMilliseconds) & "ms"
Else
MsgBox("request timeout")
Label2.Text = " Elapsed Time Not Available"
End If
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
End Sub
End Class
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 27 janv. 2015 à 11:27
Bonjour,
L'affichage, déjà, "bouffe" à lui seul des milliseconds.
Mais l'évaluation d'une expression conditionnelle également.
Pour être moins imprécis, il faudrait au moins calculer la durée écoulée avant même de l'afficher, puis l'afficher.
Cela ne "réparera" toutefois pas les autres "fuites" (interventions des librairies de VB.Net, expression conditionnelles, etc ...)
astobelix
Messages postés4Date d'inscriptionjeudi 16 août 2007StatutMembreDernière intervention 8 septembre 2017 27 janv. 2015 à 11:34
Merci de ta réponse , je dois avouer que je suis quelques peu perdu ... Comment procéder concrètement pour calculer la durée avant l'affichage puis l'afficher ?
Tu ne parviendras jamais, pour les diverses raisons que je t'ai exposées ("pollution" à divers niveaux) à déterminer la durée exacte d'exécution de ce ping (et encore moins en utilisant un langage évolué et donc interprété et donc faisant intervenir des fonctions diverses).
Tout ce que tu peux tenter, pour "coller" un peu moins mal à la durée réelle, c'est de calculer cette durée avant même ton instruction sw.Stop(). Mais tu n'auras ainsi fait que t' "approcher" moins mal de la réalité.
EDIT : si tu tiens à "mesurer" moins mal la durée "utile", il te faudra alors aller au plus près de ta machine (assembleur) et encore ... si vraiment capable de travailler en temps réel (comme les systèmes embarqués... dans les avions de chasse, par exemple ...)
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend