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

Bibliothèques C++ Discussion :

Problème requête HTTP avec caméra IP


Sujet :

Bibliothèques C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 25
    Points
    25
    Par défaut Problème requête HTTP avec caméra IP
    Bonjour à tous,

    Voici mon problème :
    J'ai ecrit un programme qui se connecte à une caméra IP (Axis 206 Network Camera) et lui envoie une requete HTTP sur le port 80 bien entendu, pour récuperer une image.
    Lorsque j'envoie une seul requete tout se passe bien, mais lorsque j'en envoie deux à la suite, la 1ère fonctionne et je recois les données, la 2ème est envoyer mais lors de la reception des données je recois une erreur 10053 qui correspond à une deconnexion dû au software ou un timeout lors de la transmission des données. J'ai donc essayer de comprendre, mais je vois pas pourquoi la 2eme fois la requete est bien envoyée, donc la connexion encore existante et lorsque l'on tente de recevoir les données en réponse cela se déconnecte.

    Si vous avez une idée d'où provient ce problème, n'hésitez pas.
    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Bon, j'avais mal lu la documentation HTTP, lorsque l'on envoie une requête HTTP à un serveur, celui-ci coupe la connexion après avoir répondu, c'est donc pour ça que j'avais ce problème.
    Le solution temporaire que j'ai mis en place, est de me reconnecter à chaque fois que je m'apprête à envoyer une requête HTTP.

    Toutefois, c'est peut-être du bricolage, donc je reste à l'écoute si quelqu'un aurait une meilleur solution.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Si un des deux est en HTTP 1.0, alors il faut une connexion TCP pour chaque transaction. Si tous les deux sont en HTTP 1.1 alors tu peux maintenir la même connexion pour plusieurs séquences de requête. Je n'ai pas les RFC sous la main, mais de mémoire, il faut dans ce cas ajouter une en-tête HTTP : Connection:Keep-Alive.

  4. #4
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Voilà un lien qui explique un peu le http si tu as besoin:

    http://jmarshall.com/easy/http/

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 85
    Points : 113
    Points
    113
    Par défaut
    Pour faire du HTTP, à une époque, j'avais utiliser la libCURL, ça permet de t'affranchir de la gestion des sockets.

    Tu devrais jeter un oeil à cet exemple, c'est peut-être ce que tu recherches.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Tout d'abord merci de vos réponses.

    @3DArchi : j'avais déjà testé en mettant Connection: keep-alive mais ça ne fonctionnait pas, j'avais même mis une valeur à Keep-Alive ma ça ne fonctionnait pas comme je le voulais, c'est pour ça que maintenant je fais une re-connexion avant chaque requête. Sinon en effet, la caméra IP est en HTTP 1.0.

    @coyotte507 : merci pour le lien .

    @emiaille : Ce que je suis en train de faire, fait partit de mon projet de fin d'année (création d'un logiciel de surveillance vidéo), c'est pour cela que j'utilise les sockets. En utilisant une bibliothèque de gestion réseau toute faites je passerai pour un fainéant auprès des examinateurs, puisque l'on doit programmer notre propre gestion réseau ^^. Puis je dois avouer que j'aime ça.

  7. #7
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Citation Envoyé par Sleeping Lionheart Voir le message
    @emiaille : Ce que je suis en train de faire, fait partit de mon projet de fin d'année (création d'un logiciel de surveillance vidéo), c'est pour cela que j'utilise les sockets. En utilisant une bibliothèque de gestion réseau toute faites je passerai pour un fainéant auprès des examinateurs, puisque l'on doit programmer notre propre gestion réseau ^^. Puis je dois avouer que j'aime ça.
    Pas d'accord. La valeur d'un outil ce sont les fonctionnalités et les bonus qu'il apporte. Quelque soit la manière dont tu l'as fait, si ton outil est vraiment génial, tu auras toujours des félicitations. Même si t'as pas fait grand chose. Et même si c'est un PFE.
    Imagine un peu la spirale. Tu veux tout programmer toi même parce que ça fait fainéant sinon. Bon, soit. Et le mec qui arrive et te dit:
    _"Ah, t'as fait ça en C++? Fainéant! C'est plus facile. T'as des std::string et des std::vector. Programmer en C, y'a que ça de vrai.
    Ce que je veux dire, c'est que l'open source même, c'est de réutiliser et réutiliser encore, pour arriver à faire des choses de plus en plus compliquées, et plus facilement. Allez vers le haut.
    Si tu veux vraiment tout faire et passer pour un "Vrai de vrai", bah soude tes circuits (je dis ça car je l'ai déjà fait) et programme en assembleur, dans un langage machine!

    Autre exemple, parfois en mathématiques tu vas démontrer un théorème en utilisant un autre, plus récent. De ce point de vue c'est une hérésie. Car pour démontrer un théorème ancien, tu n'as le droit d'utiliser que des théorèmes antérieurs historiquement. Tu peux pas démontrer un truc ancien avec des choses qui ont été trouvées après! Sinon tu violes l'histoire...
    Sauf si tu considères que l'avancée techno et mathématique est ce qu'elle est. Tout ce qui a été montré et créé existe maintenant dans sa globalité. Et tu as donc accès à tout.

    Donc utiliser une bibliothèque (Boost.Asio par exemple) où, même avec la meilleure volonté du monde, tu n'arriverais pas à l'égaler en travaillant d'arrache pied pendant 1 an, ben moi je vois pas le problème...
    Surtout, ça permet d'écrire des programmes de meilleure qualité. Et c'est ça que devraient juger les profs. Car un programme est plus souvent lu que compilé.

    Ah oui, un dernier truc au passage, utiliser une lib réseau, c'est pas le club Med non plus hein ? Il faut quand même bien réfléchir à comment organiser ton truc. Tu passes plus de temps à la conception, et moins à l'implémentation. C'est ça la vrai valeur de ton travail...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Je suis d'accord avec toi sur une bonne partie des points que tu as cité, cependant, dans la mesure où je suis encore étudiant, c'est plutôt intéressant d'utiliser les sockets et faire ma propre gestion que d'utiliser une bibliothèque toute faites, même si celle-ci est sûrement mieux conçus.
    Puis pour tout te dire un des projets proposé cette année est de faire un moteur SQL (en C objet, donc créer son propre modèle objet (enfin surtout s'inspirer de celui du prof qui a proposé le projet, qui est d'ailleurs le notre :p)), ça veut tout dire à mon avis.
    Après concernant la conception, le boulot est plutôt mâché à mon grand regret, même si l'on peut faire des ajout de fonctionnalités. On a donc tout le loisir de faire ses propres outils.
    Je suis d'accord sur le fait que d'utiliser le C++ et ses outils standards (la STL en l'occurrence ici) est une solution de facilité, mais bon je n'avait pas envie de pousser le vice aussi loin, et je dois dire que j'ai ma préférence pour ce langage, surtout pour faire ce genre de logiciel.

Discussions similaires

  1. Problème requête HQL avec Like
    Par kakahn dans le forum Hibernate
    Réponses: 3
    Dernier message: 27/03/2013, 15h56
  2. Faire une requête https avec une application Delphi 7
    Par davidkungfu dans le forum Web & réseau
    Réponses: 12
    Dernier message: 10/04/2008, 10h39
  3. problème requête "like" avec chiffre
    Par bidibou dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/02/2008, 09h44
  4. Problème requête HTTP
    Par Risike dans le forum Développement
    Réponses: 3
    Dernier message: 29/06/2007, 02h40
  5. Problème requête HTTP
    Par Risike dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2007, 11h35

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