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

Réseau Discussion :

Serveur HTTP


Sujet :

Réseau

  1. #1
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut Serveur HTTP
    Bonjour,

    Pour un besoin, j'ai créé un mini-serveur HTTP avec Qt.

    Il s'agit de pouvoir télécharger des fichiers, rien de plus.

    A la requête HTTP, je réponds ça, et ça marche très bien avec des fichiers textes :

    (m_ressources[fileToGet] est un QByteArray contenant le contenu du fichier a envoyer)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QTextStream stream(pSocket);
    stream << "HTTP/1.0 200 Ok\r\n"
              << "Content-Type: application/force-download\r\n"
              << "\r\n"
              << m_ressources[fileToGet];
    Par contre, avec des fichiers binaires, ça ne marche pas, le fichier est corrompu à l'arrivée !

    Ou est-ce que je me trompe ? Dans les headers ?

    Note : j'ai essayé avec un QDataStream à la place du QTextStream, et là plus rien ne passe, même pas le fichier texte !

    Merci !

  2. #2
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Bon, j'ai mieux cherché et j'ai trouvé, ça marche pour les textes et les binaires :

    (les deux streams sont créées dans des blocs d'accolades pour les vider correctement au moment de leur destruction)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {
         QTextStream textStream(pSocket);
         textStream << "HTTP/1.0 200 Ok\r\n"
                         << "Content-Type: application/force-download\r\n"
                         << "\r\n";
    }
    {
         QDataStream dataStream(pSocket);
         dataStream.writeRawData(m_ressources[fileToGet].data(),
                                             m_ressources[fileToGet].size());
    }

+ 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, 18h02
  2. [C++] Serveur HTTP
    Par taron dans le forum C++
    Réponses: 1
    Dernier message: 12/01/2006, 00h44
  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, 21h51
  4. [Net] Creation serveur HTTP en C++
    Par Yannos94 dans le forum C++
    Réponses: 13
    Dernier message: 14/11/2005, 12h05
  5. [Réseau] Headers vers un serveur http
    Par gexti dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/05/2004, 14h58

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