IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Codes ne fonctionnant plus !


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Codes ne fonctionnant plus !
    Bonjour à tous,

    Pour la réalisation d'un projet important, j'ai besoin de deux fonctions/procédures :
    • Une procédure qui envoie un ping sur une machine du réseau ;
    • Une fonction qui donne l'adresse IP quand on lui transmet le nom d'une machine.


    J'ai trouvé deux petites fonctions sur ce site qui me permettent de réaliser ce que je cherche. Voici les codes de ces fonctions :

    - Procédure qui envoie les ping :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Ping(ByVal strMachine As String)
    Dim strMessage As String
    Dim monPing As Ping = New Ping
    Try
    Dim Reply As PingReply = monPing.Send(strMachine)
    If Reply.Status = IPStatus.Success Then
    strMessage = "Le ping de la machine " & strMachine & " a répondu correctement."
    Else
    strMessage = "Le ping de la machine " & strMachine & " n'a pas répondu."
    End If
    MessageBox.Show(strMessage)
    Catch ex as Exception
    MessageBox.Show(ex.Message)
    End Try
    End Sub
    Je l'ai testée dans un petit programme et cela a très bien fonctionné.

    Je l'ai essayée dans une autre classe comportant un plus grand nombre de fonctions et je n'ai pas oublié d'ajouter "Imports System.Net.NetworkInformation" et au moment de l'exécution, je reçois une exception : "Une exception s'est produite lors d'une demande PING.".

    - Fonction renvoyant l'adresse IP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Function ReverseDNS(ByVal strMachine As String)
    Dim strAdresses As String() = Nothing
    Dim adressesIP As IPAddress() = Dns.Resolve(strMachine).AddressList
    If adressesIP.Length > 0 Then
    strAdresses = New String(adressesIP.Length) {}
    Dim intI As Integer = 0
    While intI < adressesIP.Length
    strAdressesIP(intI) = adressesIP(intI).ToString
    intI = intI + 1
    End While
    End If
    End Function
    Je l'ai également testée dans un petit programme et cela a très bien fonctionné.

    Au moment de la rajouter dans l'autre classe de mon projet, comme pour la procédure Ping, cela ne fonctionnait pas. Je recevais comme exception : "Le nom demandé est valide mais aucune donnée du type requise n'a été trouvée.".

    Comment peut-on expliquer qu'un code fonctionnant correctement dans un petit programme ne fonctionne plus dans un autre ? Alors que le code est identique.

    Merci d'avance !

  2. #2
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    Si tu fais du pas à pas, ça plante à quelle ligne?

    La compilation se passe bien?
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  3. #3
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Citation Envoyé par PC_BE Voir le message
    Comment peut-on expliquer qu'un code fonctionnant correctement dans un petit programme ne fonctionne plus dans un autre ? Alors que le code est identique.

    Merci d'avance !
    Ca s'explique assez facilement : le code justement n'est pas identique sinon on aurait 2 petits programmes
    Blague a part, si vraiment tu n'as aucune idee d'ou le probleme peut venir dans ton "gros" programme, mets en remarques des sections de celui ci pour voir si le probleme persiste.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci à vous deux. J'ai oublié d'indiquer les lignes où cela provoquait une exception.

    Pour la procédure d'envoi de ping, c'est la ligne ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Reply As PingReply = monPing.Send(strMachine)
    Une fois que le débogueur passe cette ligne, il rentre directement dans le bloc Catch.

    Et pour la fonction d'adresses IP, c'est cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim adressesIP As IPAddress() = Dns.Resolve(strMachine).AddressList
    Le débogueur s'arrête à cette ligne.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai finalement trouvé mon erreur.

    Le problème était le paramètre "strMachine" que je passais à ces fonctions.

    Un utilisateur envoie une commande par SMS (par exemple : Ping pc1) et j'utilisais la fonction "Substring" pour ne garder que le "pc1". Sauf qu'avec un modem GSM, il y a un retour à la ligne après le message

    Et ce retour à la ligne était invisible dans le débogueur ainsi qu'avec l'aide d'un espion : je voyais toujours "pc1" ce qui m'était tout à fait normal.

    Ce n'est qu'avec l'aide du visualiseur de texte de l'espion que j'ai remarqué qu'il y avait un retour à la ligne.

    Maintenant, tout va bien. Le problème est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code ne fonctionnant plus sans registers_globals
    Par marycandy dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2013, 12h20
  2. [Toutes versions] code ne fonctionne plus en copiant une feuille pour renommer les onglets
    Par tazko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2012, 22h12
  3. Puissance 4 code ne fonctionnant plus
    Par zyhou dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/01/2012, 21h16
  4. Le code ne fonctionne plus dans une fonction
    Par Yukiho dans le forum Langage
    Réponses: 0
    Dernier message: 12/03/2010, 11h19
  5. Code ne fonctionne plus quand j'ai splitté la base
    Par jloois dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/03/2009, 22h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo