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

avec Java Discussion :

Comprendre un code qui ne veut pas fonctionner


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut Comprendre un code qui ne veut pas fonctionner
    Bonjour;
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    import java.io.IOException;
     import java.io.OutputStream;
     import java.net.InetAddress;
     import java.net.Socket;
     import java.net.UnknownHostException;
     import java.net.InetAddress;
     import java.net.NetworkInterface;
     import java.net.SocketException;
     import java.net.UnknownHostException;
     import java.util.Enumeration;
     import org.omg.CORBA.portable.InputStream;
     
    public class EssaiSocket 
    {
     
    	public static void main(String[] args) throws   IOException      
    	{
     
     
    		Socket s = new Socket("www.developpez.com", 80);
    		//recupération des flux
    		OutputStream oStream = s.getOutputStream();;
    		InputStream iStream = s.getInputStream();;
    		byte[] b = new byte[1000];
    		String g = "GET / HTTP/1.1\n" + "Host:www.developpez.com\n\n";
    		try {
    		oStream.write(g.getBytes());
    		int bitsRecus = 0;
    		while((bitsRecus = iStream.read(b)) >= 0) {
    		System.out.println("On a recu : " + bitsRecus + " bits");
    		System.out.println("Recu : " + new String(b, 0, bitsRecus));
    		}
    		} catch (Exception e) {
    		e.printStackTrace();
    		} finally {
    		//fermeture des flux et des sockets
    		oStream.close();
    		iStream.close();
    		s.close();
    		}
    	}
     
    }
    j'ai quelques questions sur ce code qui ne fonctionne pas chez moi et j'arrive pas à savoir pourquoi.... en faite elipse me signale que y a une erreur sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream iStream = s.getInputStream();;
    " j'ai eu ce message Add cast to InputStream": sa veut dire quoi ça ?

    A+ Merci d'avance de m'avoir aider

  2. #2
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par zpico Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream iStream = s.getInputStream();;
    " j'ai eu ce message Add cast to InputStream": sa veut dire quoi ça ?

    A+ Merci d'avance de m'avoir aider
    Il vous demande de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream iStream = (InputStream)s.getInputStream();
    Le cast consiste en gros en la "convertion" d'un type en un autre sur demande explicite du programmeur par la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Nouveau_Type) objet_a_caster;
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par afranck64 Voir le message
    Il vous demande de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream iStream = (InputStream)s.getInputStream();
    Et la raison pour laquelle il demande ça, c'est que ce import est incorrect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.omg.CORBA.portable.InputStream;
    Ce devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import java.io.InputStream;
    Comme pour le OutputStream.

    Note : en HTTP, la fin de ligne est \r\n et pas juste \n.
    www.developpez.com l'accepte quand même, mais en principe il ne devrait pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    [QUOTE=thelvin;6417561]Et la raison pour laquelle il demande ça, c'est que ce import est incorrect :
    [/code]

    Bonjour,

    effectivment l'import est oncorrecte proposé par l'editeur Eclipse ...

    [QUOTE=thelvin;6417561]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.omg.CORBA.portable.InputStream;
    Ce devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import java.io.InputStream;
    Comme pour le OutputStream.
    [/code]
    vous avez raison sur ça ... Mais pourquoi ?

    Effectivement l'erreur a disparu mais je n'ai pas eu le résultat voulu (ce connecté au serveur et avoir l'index HTML..ect) a sa palce j'au eu ceci

    Exception in thread "main" java.net.ConnectException: Connection timed out: 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.SocksSocketImpl.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 EssaiSocket.main(EssaiSocket.java:21)


    pourriez vous me dire c'est quoi le probleme ...

    A+

    ET MERCI ENCORE DE M'AVOIR REPENDU ...

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Le problème est apparemment qu'il n'arrive pas à se connecter, le time out a expiré. Est-tu sur de l'adresse ou te connecter?

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par deathness Voir le message
    Le problème est apparemment qu'il n'arrive pas à se connecter, le time out a expiré. Est-tu sur de l'adresse ou te connecter?
    Bonjour,

    quel sont les causes problème qui peuvent faire ça ..
    je veux juste ajouter que j'ai un accé au net à travers deux serveurs depuis mon PC.. est-ce que sa peut faire ce genre de probleme

    A+

    Merci d'avance de m'avoir répondu..

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zpico Voir le message
    vous avez raison sur ça ... Mais pourquoi ?
    Ben parce qu’avec l'expérience on commence à avoir plus souvent raison?


    pourriez vous me dire c'est quoi le probleme ...
    La machine virtuelle java n'a pas accès au serveur www.Developpez.com port 80. Soit vous avez un firewall software soit vous avez un firewall d'entreprise qui empeche ça. Soit la machine sur laquelle vous faites du dev n'a pas accès à internet.

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    La machine virtuelle java n'a pas accès au serveur www.Developpez.com port 80. Soit vous avez un firewall software soit vous avez un firewall d'entreprise qui empeche ça. Soit la machine sur laquelle vous faites du dev n'a pas accès à internet.
    Bonjour,

    d'abord merci pour la réponse ...mon PC a l'accé à l'internet mais je ne suis pas l'administrateur de ce dernier et je n'ai pas le droit de voir si le firewall est la source de ce probleme mais probablement c'est lui ...bref ma question est :

    1- dans le cas normale est-ce que je dois configurer mon firewall qund je dois utilisé le port 80 autrement dis y a t-il une configuration a apporter sur le firewall lors d'une communication avec un serveur d'un site dans notre cas c'est le serveur du site devloppez.com.

    2- comment dois je vérifier ça y a t-il une astuce un code ...je ne sais pas n'importe quel manipe qu'on peut faire dans une situation pareille. pardon si je été long..

    A+
    Merci encore.

  9. #9
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Et bien le configurer oui, après tout dépend de ton firewall. Mais tu peux autoriser la communication avec certain port/adresse comme les refuser, ce qui semble être ton cas.

    Après j'ai pas compris, que veux tu vérifier? Si c'est à cause du firewall ou la config de celui-ci?

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par deathness Voir le message
    Et bien le configurer oui, après tout dépend de ton firewall. Mais tu peux autoriser la communication avec certain port/adresse comme les refuser, ce qui semble être ton cas.

    Après j'ai pas compris, que veux tu vérifier? Si c'est à cause du firewall ou la config de celui-ci?
    Bonjour,
    mais quand je test ce code qui me donne l'adresse ip du site devloppez.com j'ai une réponse 87.98.130.52

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    InetAddress address = InetAddress.getByName("www.developpez.com");
    System.out.println(address.getHostAddress());
    pourquoi le firewall m'a pas empêché cette opération? par contre je ne peut pas utilier le port 80 ?

    Merci pour la réponse

    A+

  11. #11
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Je ne comprends pas très bien tes questions.
    Mais tu devrais déjà aller te renseigner avec l'admin réseau pour avoir la config du firewall.

  12. #12
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par zpico Voir le message
    pourquoi le firewall m'a pas empêché cette opération? par contre je ne peut pas utilier le port 80 ? /
    Pourquoi il l'aurait fait ?

    C'est une chose de demander à son service DNS quelle est l'adresse IP d'une machine externe.
    C'est une autre chose de se connecter à la machine externe en question.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Pourquoi il l'aurait fait ?

    C'est une chose de demander à son service DNS quelle est l'adresse IP d'une machine externe.
    C'est une autre chose de se connecter à la machine externe en question.
    Merci thevlin

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

Discussions similaires

  1. serialize qui ne veut pas fonctionner
    Par ryu20 dans le forum jQuery
    Réponses: 5
    Dernier message: 08/09/2011, 16h48
  2. [Batch] Un alias doskey qui ne veut pas fonctionner
    Par totoz dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 31/10/2009, 21h17
  3. Lien sur un bouton qui ne veut pas fonctionner :/
    Par Rayono dans le forum Flash
    Réponses: 0
    Dernier message: 12/05/2009, 11h14
  4. Code simple ne veut pas fonctionner
    Par cdd59554 dans le forum C++
    Réponses: 4
    Dernier message: 11/08/2008, 21h19
  5. Une formule qui ne veut pas fonctionner
    Par Maxence45 dans le forum Excel
    Réponses: 4
    Dernier message: 09/11/2007, 01h17

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