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 :

[Réseau] Gestion de l'exception à la connexion


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 30
    Par défaut [Réseau] Gestion de l'exception à la connexion
    quand je lance mon client avec une ip non valide, il bloque...
    je voudrais capturer l'exception de type UnknownHostException

    voici la methode de connexion
    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
     
     
    	public void connexion(String adresseIP, int numPort)throws UnknownHostException{
    		try{
    			leSocket = new Socket(adresseIP, numPort);
    			System.out.println("Connecté sur : "+leSocket);
     
      			fluxSortieSocket = new PrintStream(leSocket.getOutputStream());
          			fluxEntreeSocket = new BufferedReader(new  InputStreamReader(leSocket.getInputStream()));
     
    		}catch (IOException ex){
    			// si on est la c que la machine à été trouvé mais l'appli java ne répond pas, le serveur n'est pas lancé par exemple..
          			System.err.println("Erreur : "+ex);
          			// ex.printStackTrace();
    		}    	
    	}
    et le main oui je voudrias capturer l'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	public static void main (String args[]){
     
    		Client	c=new Client();
    		try{
    			c.connexion("128.0.0.1",50000);
    		}catch(UnknownHostException ex){
    			// si on est là c'est que la machine n'est pas accessible
    			System.err.println("Machine inconnue : "+ex);
    			// on appelle la méthode qui va traiter ce probleme
    			c.serveurDown();
          			// ex.printStackTrace();
        		}
    voila merci d'avance!



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    Commence par modifier le type d'exception renvoyée par :

    "public void connexion(String adresseIP, int numPort) throws Exception"

    et rajoute un catch(Exception e) dans ton main, juste apres le premier catch.

    Peut-être que tu ne récupère tour simplement pas le bon type d'exception...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 30
    Par défaut
    ca marche pas...
    mais j'ai l'impression en fait qu'il essai de contacter l'ip bidon
    jusqu'a avoir une réponse... c ça le probleme

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Par défaut
    Citation Envoyé par API
    Throws:
    UnknownHostException - if the IP address of the host could not be determined.
    Cette exception est levée quand il n'est pas possible de résoudre le nom de l'hôte. Ca n'est jamais ton cas puisque tu travailles directement en IP

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    Je n'étais pas loin alors.

    Apparemment, tu ne récupères pas d'exception du tout. Il faut que tu trouves un moyen de vérifier l'adresse IP que tu file au construsteur avant de l'appeler.

    Bon courage

  6. #6
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    Tu ne spécifie pas un temps limite (timeout). Faut en fixer un et catcher une exception.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    leSocket = new Socket(adresseIP, numPort); 
    try{
    leSocket.setSoTimeout(5000); // 5 secondes
    }catch(InterruptedIOException io){
    System.out.println("Can't establish connection...");
    }
    Nas'

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    "leSocket = new Socket(adresseIP, numPort); "

    Voila la ligne qui bloque si j'ai bien compris, donc ton paramétrage de TIMEOUT arrive trop tard...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 30
    Par défaut
    merci à tous,
    finalement j'ai fait autrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try{
    	InetAddress ip=InetAddress.getByName(adresseIP);
    	adrTrouve=ip.isReachable(1000);
    }catch(IOException ioex){
    			System.out.println(ioex);
    }
    j'utilise un boolean qui m'est renvoyé par la methode de connexion, j'aurai
    préférer mettre ca dans une exception mais bon ca marche c'est l'essentiel

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

Discussions similaires

  1. Réseau Ad-hoc et partage de connexion internet
    Par sami_c dans le forum Hardware
    Réponses: 9
    Dernier message: 21/05/2007, 15h12
  2. Gestion bizzare des exceptions
    Par inflamers dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 17/10/2006, 08h24
  3. Gestion d'une exception
    Par aloula dans le forum Général Java
    Réponses: 12
    Dernier message: 28/03/2006, 11h06
  4. Gestion avancée d'exception et compatibilité dotnet
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 14/11/2005, 18h12

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