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

Entrée/Sortie Java Discussion :

Pourriez-vous m'aider pour cette simulation de ping ?


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut Pourriez-vous m'aider pour cette simulation de ping ?
    Bonjour à tous,
    Il y avait un exemple de code sur internet pour faire un "ping" en java. Mais quand je lance l'application alors il y a un "fatal exception" erreur , et le message stack est :
    java.lang.ArrayIndexOutOfBoundsException: 0
    at simulate_ping.main(simulate_ping.java:11)
    Exception in thread "main"

    Mon but est de faire un ping à partir de mon PC vers une adresse IP , disons 192.168.0.25. Alors comment continuer ce code pour y parvenir ?
    Merci beaucoup de votre aide.
    Voici le code:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import java.io.*;
    import java.net.*;
     
    public class simulate_ping
    {
     
    	public static void main(String args[]) 
    	{
    		try 
    		{
    			Socket t = new Socket(args[0], 7);
    			DataInputStream dis = new DataInputStream(t.getInputStream());
    			PrintStream ps = new PrintStream(t.getOutputStream());
    			ps.println("Hello");
    			String str = dis.readLine();
    			if (str.equals("Hello"))
    		        System.out.println("Alive!") ;
    		      else
    		        System.out.println("Dead or echo port not responding");
    			t.close();
    		}
    		catch (IOException e) 
    		{
    			e.printStackTrace();
    		}
    	}
     
    }

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    tu le lances comment le programme ?

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Pour l'instant avec la classe que tu as tu dois passer en paramètre l'adresse que tu veux pingger dans la ligne de commande lançant ta classe.
    Sinon tu peux remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     			Socket t = new Socket(args[0], 7);
    par


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     			Socket t = new Socket("192.168.0.25", 7);

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut
    Après remplacement par "192.168.0.25" voici le stack erreur :

    java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at simulate_ping.main(simulate_ping.java:11)
    Qu'est-ce-que cela veut-dire ?

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut
    Je lance le programme à partir du logiciel Eclipse.
    Dans le navigateur d'Eclipse il y a un menu arborescent en arbre contenant classpath. Et quand je consulte son contenu en doublecliquant sur l'icone du classpath il y a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" path=""/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    	<classpathentry kind="output" path=""/>
    </classpath>

  6. #6
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Pour info, si tu utilises Tiger, je te conseil d'aller voir la FAQ, il y a un point qui traite du ping.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut
    Quand je clique sur le message d'erreur ligne 2 , Eclipse donne cette explication :
    Source not found
    The source attachment does not contain the source for the file PlainSocketImpl.class.

    Alors où est-ce-qu'on peut trouver le source de PlainSocketImpl ? Ou bien est-ce qu'il y a autre chose ?

  8. #8
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    T'as pas besoin d'acceder à la source de la classe PlainSocketImpl. Eclipse te met se message car il permet d'acceder directement à l'endoirt où s'est produit l'erreur. Ici, l'erreur s'est produit certes dans la classe PlainSocketImpl mais ton problème ne se trouve pas dans cette classe.

    Regarde plus en détail ta stack d'erreur. Il vient de la ligne 11 d'un de tes programmes. De plus, quand tu lis le message d'erreur, c'est un problème de connexion. il y a deux possibilités : soit le serveur ne réponds pas ( essaie un "vrai" ping pour voir s'il repond, s'il ne reponds pas, ca ne sert à rien de vouloir simuler un ping sur lui ). S'il reponds, c'est dans ton code qu'il y a un problème.

    Peux tu montrer le code qui te pose problème ?

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut
    Le vrai ping marche.
    Voici mon code actuellement et le numéro de ligne d'erreur est à la ligne 12 dans le stack d'erreur :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    import java.io.*;
    import java.net.*;
     
    public class simulate_ping
    {
     
    	public static void main(String args[]) 
    	{
    		try 
    		{
    			Integer port = new Integer("7");
    			Socket t = new Socket("192.168.0.25", 7);
    			DataInputStream dis = new DataInputStream(t.getInputStream());
    			PrintStream ps = new PrintStream(t.getOutputStream());
    			ps.println("Hello");
    			String str = dis.readLine();
    			if (str.equals("Hello"))
    		        System.out.println("Alive!") ;
    		      else
    		        System.out.println("Dead or echo port not responding");
    			t.close();
    		}
    		catch (IOException e) 
    		{
    			e.printStackTrace();
    		}
    	}
     
    }
    Stack erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    java.net.ConnectException: Connection refused: connect
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.PlainSocketImpl.doConnect(Unknown Source)
    	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    	at java.net.PlainSocketImpl.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at simulate_ping.main(simulate_ping.java:12)

  10. #10
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Ton ping est un simulation de ping. En fait, tu utilises le service echo (port 7). Ce service renvoie simplement le caractère reçu d'où le nom echo.

    La commande ping utilise un autre protocole.

    Sur la plupart des serveurs ce service n'est plus disponible.

    C'est pour cette raison que tu as l'exception "Connection refused: connect". Le serveur refuse ta connection

Discussions similaires

  1. Pouvez vous m'aider pour mon graph
    Par agathaa dans le forum Excel
    Réponses: 2
    Dernier message: 10/02/2009, 13h15
  2. Pourriez vous m'aider svp.gallerie en jsp
    Par zis0907 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/12/2007, 18h03
  3. Pourriez-vous m'aider à transformer ce swf
    Par chapeau_melon dans le forum Flash
    Réponses: 11
    Dernier message: 28/11/2006, 11h32
  4. Réponses: 3
    Dernier message: 10/10/2006, 09h44

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