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

C++ Discussion :

implémentation d'un serveur HTTP


Sujet :

C++

  1. #1
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut implémentation d'un serveur HTTP
    Bonjour à tous,
    Je souhaite faire un petit serveur http basic avec le moins d'options possible.
    Malheureusement sur le net je n'ai pas trouvé enormément de ressources ni de library permettant d'implémenter un tel serveur.

    j'ai souvi un tuto que j'ai trouvé sur ce site de serveur multithread :
    http://khayyam.developpez.com/articl.../multithreads/

    le serveur écoute bien sur l'adresse ip de la machine sur le port 12345 mais comment est ce que je peux renvoyer une réponse sur mon naviguateur!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DWORD serveur::ClientThread(SOCKET soc)
    {
        cout << "thread client démarré" << endl;
     
        /*    A mettre ici : code relatif au protocole utilisé    */
     
        return 0;
    }
    merci d'avance Jérémy

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 370
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonjour,

    le protocole http stipule que le client envoie tout d'abord sa requête puis attend la réponse. il faut donc d'abord faire un recv dans le serveur pour analyser ce que le client a demandé, puis envoyer au client la page avec un send.
    Le recv et le send se font sur la même socket, que tu as en paramètre dans la fonction.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 145
    Points
    145
    Par défaut
    regardes cette doc

    http://www.iprelax.fr/http/

    sinon si tu veux le document de reference pour le http
    tapes sur google "rfc http"

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    DWORD et SOCKET sont des types spécifiques à Windows.

    Sinon pour ton truc il faut que tu commences par lire la requête.
    En HTTP, tu as deux parties : les entêtes et le corps. Les entêtes se lisent ligne par ligne jusqu'à une ligne vide qui indique leur fin.
    Les entêtes te fournissent alors la taille du corps, ou alors cette taille t'est indiquée au milieu du corps lui-même par morceaux (Transfer-Encoding: chunked).

    Une fois que tu as lu tout ça, tu réalises une réponse (avec entêtes et corps) en fonction de ce qu'on t'a envoyé.

  5. #5
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    Ok merci a tous pour ces reponses! je recois bien les message mais je n'arrive pas a envoyer une reponse avec send! il s'agit sans doute d'un probleme de formatage de la réponse!

  6. #6
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    il s'agissait bien d'un probleme de formatage de la reponse merci à tous
    jeremy

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

Discussions similaires

  1. Sockets SSL ( serveur HTTPS )
    Par hexadecime dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/10/2007, 19h02
  2. [C++] Serveur HTTP
    Par taron dans le forum C++
    Réponses: 1
    Dernier message: 12/01/2006, 01h44
  3. Tester un serveur HTTP et un FTP
    Par fmcvieira dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/11/2005, 22h51
  4. [Net] Creation serveur HTTP en C++
    Par Yannos94 dans le forum C++
    Réponses: 13
    Dernier message: 14/11/2005, 13h05
  5. [Réseau] Headers vers un serveur http
    Par gexti dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/05/2004, 15h58

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