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

Développement Web en Java Discussion :

serversocket et requete get


Sujet :

Développement Web en Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut serversocket et requete get
    bonjour à tous.
    Je suis en train de programmer une application en java qui surveille une série de serveurs ...

    Le programme crée donc des sockets et si le port est ouvert, teste le service deriere ...
    Mon application devrait etre un démon ou a la limite un cron.
    Pour les utilisateurs, j'ai créé une interface web que je genere directement depuis mon appli java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     [...]
     
    out.println("HTTP/1.1 200");
     
     
     
    String EnteteHtml = "<html><title>~ Listing des serveurs ~</title><head></head><body bgcolor=#CCCCCC>
    <center><input type=button value =\" Stopper le programme\" onClick=\"self.location.href='http://serveur:8088/quitter'\" > <input type=button value =\" ACTUALISER\" onClick=\"self.location.href='http://serveur:8088/'\" > <input type=button value =\" Relancer le test \" onClick=\"self.location.href='serveur:8088/relancer'\"><br></center><br><br><br><table align=center border=1 bgcolor=#0099CC><caption>" +
     fichier.dateJour() +"</caption><tr bgcolor=#66CCFF><th>Serveur</th><th>Port</th><th>Statut</th><th>Date et heure</th></tr>";
     
    [...]
    Je vous ai affiché une partie seulement du code car le reste n'est pas interessant ici.
    Vous pouvez remarquer que j'ai mis des <input> avec comme action, au clic, soit l'arret de mon programme, soit une actualisation, soit une relance des tests de sockets.

    Ma question est donc comment puis-je faire pour récuperer au niveau de mon serveur ( serversocket ) le "quitter" et le "relancer" pour ensuite lancer les actions correspondantes ?

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu vas recevoir sur la socket côté serveur, dans l'entête HTTP, un
    Tu parses tout à la main ? Ou tu utilise une API ? Si c'est manuel, il te suffit d'analyser la chaine qui suit l'entête GET. Commence par afficher ce que reçoit ton serveur lorsque le navigateur appelle l'URL pour quitter, par exemple. Tu vas voir que ce n'est pas compliqué.

    Par contre, tu devrais plutôt mettre le code HTML dans un fichier séparé de ton code. Durant l'exécution, tu peux cacher les données, mais au moins, ton code reste relativement propre, et ça te permet de changer le HTML sans recompiler à chaque fois.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Pour la partie html; j'ai fait ce qu'il faut; c'est vrai que là ce n'est pas tres clair !
    Sinon, pour afficher ce que recoit le serveur quand on lance une requete http; il faut utiliser une libairie ou c'est intégré ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     System.out.println("test : "+in.readLine());
     
     
     
                    if (in.readLine()=="GET / HTTP/1.1\n" + "Host:serveur:8088/quitter\n\n"){//GET /quitter HTTP/1.1\n\n
     
                     System.exit(1);
     
                    }
    Que manque t-il à ce code ?? !!

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par vincent62149 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     System.out.println("test : "+in.readLine());
     
     
     
                    if (in.readLine()=="GET / HTTP/1.1\n" + "Host:serveur:8088/quitter\n\n"){//GET /quitter HTTP/1.1\n\n
     
                     System.exit(1);
     
                    }
    Que manque t-il à ce code ?? !!
    Attention, un "readLine" lit la ligne d'un flux et avance la position de lecture courante. Concrètement, un second appel à "readLine" va lire la ligne suivante !
    Donc ton premier appel de "readLine" (pour l'affichage) contient la première ligne reçue par le serveur, et le second appel à "readLine" dans ton "if" contient la seconde ligne reçue par le serveur. Il te faut absolument passer par une variable temporaire pour à la fois afficher la première ligne et la traiter.
    Ensuite, en fonction de ce qui s'affiche tu pourras parser ta ligne comme il faut.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    J'aurais regardé le 5, tu m'aurais aidé ! lol

    Merci quand meme, mon erreur c'était tout a fait ca !

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

Discussions similaires

  1. reponse du requete GET
    Par prodit96 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 05/12/2008, 16h37
  2. C++ Requete GET Http Erreur 400 Bad Request
    Par gy0m76 dans le forum C++
    Réponses: 2
    Dernier message: 02/07/2008, 15h49
  3. Passer les requetes GET et POST en UTF-8
    Par deudtens dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 05/05/2008, 09h08
  4. Requete GET transmise par le client : objets à utiliser
    Par buzuck dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/10/2007, 11h09

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