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 :

probleme client/serveur thread


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut probleme client/serveur thread
    je suis en train de créer un serveur qui accepte des browser (firefox, internet explorer, ...) comme client

    pour chaque connection créé un objet client est créé pour pouvoir communiquer avec le browser

    ce client est hérité de la class Thread

    mon probleme vient de ce thread que je ne sais pas comment gerer pour recevoir les infos du browser

    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
     
     public void run ()
      {
      BufferedReader in;
      PrintStream out;
     
     try
       {
       in = new BufferedReader (new InputStreamReader (socket.getInputStream ()));
     
       out = new PrintStream (socket.getOutputStream ());
       }
      catch (Exception ex)
       {
       System.err.println (ex.getMessage ());
       }
     
      try
       {
       for (String requete = in.readLine (); requete.isEmpty () == true; requete = in.readLine ())
        {
        System.out.println (requete);
        }
       }
      catch (IOException ex)
       {
       System.err.println (ex.getMessage ());
       }
      }
    mes problemes :
    in.readLine () n'est pas une fonction bloquante, donc le thread se termine des que le browser n'envoi plus d'infos (cad a dire directement apres que la connection soit établie)

    in.readLine () lit une chaine de caracteres jusqu'à trouver un '\n', or le browser commence par envoyer un entete composé essentiellement de "\r\n",
    donc comment savoir que le browser a fini sa requete ?

    solutions souhaitées :
    une fonction bloquante qui attend des infos (et qui signale la deconnection du browser)
    une fonction qui recupere toute la requete du browser

    en fait mon prog a été initialement codé en c++ et je le transforme en java
    en c++ il y a une jolie fonction recv () qui fait tout ca :
    bloque tant qu'elle n'a pas d'infos
    recupere toute la requete du browser
    renvoi le nombre de caracteres recu (-1 qd deconnection du browser)

    existe-t-il l'equivalent en java ?

    merci de vos reponses

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hello,

    Il faut que tu gère cela via la méthode "java.io.InputStream#available".

    Si available renvoie 0 ça veut dire qu'aucune données n'est disponible, donc qu'il faut attendre un peu puis réessayer

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    c bon j'ai trouvé je dois utiliser la methode read (char [] cbuff)

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

Discussions similaires

  1. petit probleme client/serveur
    Par fred033 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 19/05/2008, 14h11
  2. [Reseaux] Probleme client/serveur
    Par franc82 dans le forum C++
    Réponses: 3
    Dernier message: 24/04/2007, 22h14
  3. probleme client serveur en c
    Par oclone dans le forum C
    Réponses: 2
    Dernier message: 09/12/2006, 21h59
  4. [Reseau] probleme client/serveur TCP LInux
    Par jmjmjm dans le forum Réseau
    Réponses: 20
    Dernier message: 03/12/2006, 19h32
  5. Probleme Client / Serveur
    Par Kinian dans le forum Access
    Réponses: 4
    Dernier message: 16/06/2006, 10h12

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