Appel d'url via un programme en C++ - C++ - Programmation
Marsh Posté le 25-10-2009 à 13:06:29
Ca fonctionne maintenant, il suffit de :
Mettre en ligne 76 le domaine appelé, par exemple www.monsite.com
Mettre en ligne 78 la même chose, donc par exemple www.monsite.com
Mettre en ligne 80 la page appelée, par exemple /page.php
Il faut supprimer la ligne 121.
Après exécution la page est bien appelée, parfois le temps de réponse peut dépasser 1 seconde.
Ensuite, dans le fichier entête j'ai un résultat de ce type :
Code :
|
Marsh Posté le 26-10-2009 à 19:22:49
J'ai une question au sujet de la fonction recv.
J'ai un comportement différent entre la version debug et la release.
La debut fonctionne très bien mais la release part en boucle car le fonction recv (dans readn) retourne une valeur différente de 0 alors qu'elle devrait retourner 0.
Une fois alimenté, le buffer ne contient pas la même fin en debug qu'en release, c'est à cause de cela que la fonction tourne en boucle.
J'ai trouvé un topic http://www.eggheadcafe.com/softwar [...] -mode.aspx de quelqu'un qui a rencontré le même problème mais je ne comprends pas sa résolution.
Avez-vous une idée ?
Merci
Marsh Posté le 26-10-2009 à 19:36:39
le buffer est une chaine pas un buffer d'octet , y'a u 0 terminal à copier. D'ou l'utilsiation de strcpy au lieu de memcpy.
et passer à Boost::Asio ca te dit pas plutot que de te palucher ce code infame ?
Marsh Posté le 26-10-2009 à 20:52:47
En mode debug, tout est initialisé à 0, ça permet le plus souvent de trouver les soucis mémoires plus rapidement qu'en mode optimisé.
Dans ce dernier mode en revanche, il y a en mémoire... un peu n'importe quoi. Vu que rien n'est initialisé de façon automatique, si tu ne l'as pas fait alors le contenu de ta mémoire est indéterminé.
Voila pourquoi il y a une différence de comportement entre les deux modes de compilation.
Marsh Posté le 27-10-2009 à 09:37:19
Merci pour votre retour.
Effectivement le code est loin d'être beau mais mon objectif premier était de rapidement valider la faisabilité.
Je vais le réécrire maintenant.
Par contre passer à Boost::Asio (que je ne connais pas) n'est pas vraiment envisagé car cette portion de code doit s'intégrer dans un programme déjà existant avec ses propres librairies.
Marsh Posté le 25-10-2009 à 11:15:57
Bonjour,
Je souhaite appeler depuis un programme en C++ une url sur un serveur web distant, par exemple http://www.monsite.com/maj.php?valeur=2
J'ai pensé à l'utilisation d'un socket pour pouvoir communiquer vers l'extérieur.
J'ai testé un bout de code trouvé sur le net afin de comprendre comment fonctionne un socket et j'avoue être un peu perdu, d'autant que j'ai juste une réaction en appelant google et uniquement au niveau de l'entête, bref j'ai besoin d'un petit coup de main !
Voici le source
Si je ne force pas à la ligne 121 l'adresse ip, le nom n'est pas résolu et j'obtiens une erreur.
Mais même avec cette bidouille, seul le fichier entête généré est alimenté.
Voici le contenu du fichier d'entête :