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 :

[socket] attente de réponse


Sujet :

Entrée/Sortie Java

  1. #1
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut [socket] attente de réponse
    Bonjour,

    j'effectue une connexion vers un serveur à l'aide d'un socket :
    j'interoge un port et j'attend la réponse.

    Comment faire pour arreter cette attente si aucune réponse ne vient (avant un certain temps)?

    et si jamais le serveur ne tourne plus, comment le détecter??

  2. #2
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut
    j'aurais dit un bloc try/catch, en triant les exceptions reçues (une pour le délai expiré, l'autre pour l'absence du serveur). C'est du moins comme ça en C++, je pense que les sockets doivent implémenter en Java ce système d'exceptions.

    A vérifier dans l'API !

    ++
    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  3. #3
    Membre averti Avatar de guignol
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 339
    Points
    339
    Par défaut
    Avec la méthode setSoTimeout(), ça ne pourrait pas marcher?
    - Fais une recherche, c'est un conseil. Si je me mets à t'aider, tu vas pas t'en sortir

    - "Même avec les yeux grands ouverts, je n'y vois rien".

  4. #4
    Membre habitué Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Points : 180
    Points
    180
    Par défaut
    Pour le temps d'attente, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    socket.setSoTimeout(int miliseconds);
    De cette manière, ton socket lancera une SocketTimeoutException s'il ne reçoit aucune réponse après le temps indiqué.

    Quand au serveur qui ne tourne pas, soit tu le remarques à l'établissement de ton socket (une IOException est levée, il me semble), soit tu reçois un message null quand tu lis le message.

    Il te suffit donc de catcher l'exception et de fare un test sur le message reçu ! J'espère que ça t'aidera !
    Wookai


  5. #5
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut
    merci Wookai, j'ai fais exactement ce que tu as dis :

    pour ne pas attendre la réponse trop longtemps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    socket.setSoTimeout(int miliseconds);
    pour le serveur qui ne tourne pas:
    je détecte une exception : une IOException

  6. #6
    Membre habitué Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Points : 180
    Points
    180
    Par défaut
    Héhéhé ! Content de t'avoir été utile !
    Wookai


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

Discussions similaires

  1. [socket] Attente de la réponse trop longue
    Par tupac25 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 02/05/2011, 09h40
  2. Stage et attente de réponses ?
    Par Loïc M dans le forum Stages
    Réponses: 4
    Dernier message: 30/01/2008, 12h16
  3. Attente de réponse d'un OLE
    Par davels dans le forum Delphi
    Réponses: 2
    Dernier message: 28/06/2007, 10h46
  4. [Socket] Attente avant l'envoi ?
    Par Invité dans le forum C++
    Réponses: 1
    Dernier message: 21/09/2005, 18h59
  5. [Socket] Attente de lecture
    Par al85 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/01/2005, 11h16

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