cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008
-
23 juin 2004 à 11:55
zeboss31
Messages postés14Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention 1 février 2010
-
14 oct. 2012 à 11:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
zeboss31
Messages postés14Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention 1 février 2010 14 oct. 2012 à 11:06
Bonjour, à quoi sert le fichier "enteteHTTP.dll" ?
VPNVB
Messages postés58Date d'inscriptiondimanche 7 août 2005StatutMembreDernière intervention20 août 2008 14 août 2007 à 18:12
Salut
Merci pour se Serveur Web
il est tré simplifier et Tré Functionaile
je veux te contacter en Persone
ou je peux trouver ton Email SVP ?
adnane60
Messages postés1Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention26 février 2005 26 févr. 2005 à 17:34
est ce que vous pouvez me bien données une explication sur le serveurapche
cs_Belt
Messages postés47Date d'inscriptionjeudi 13 juin 2002StatutMembreDernière intervention 3 juillet 2006 13 déc. 2004 à 22:24
bof... c'est sur que si tu ve être très précis et attendre genre 0.9s alors d'accord mais sinon ca sert qu'a ralonger le code !
parker_
Messages postés2Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention13 décembre 2004 13 déc. 2004 à 21:19
Ca serait qd meme mieux de mettre un select .
C est quand meme plus propre que de mettre un sleep..
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 20053 22 nov. 2004 à 23:18
j'avais donc raison, mais à quoi pense ces jeune programmeur ? sans doute a la même chose que nous quand on étai jeune :-)
cs_Belt
Messages postés47Date d'inscriptionjeudi 13 juin 2002StatutMembreDernière intervention 3 juillet 2006 22 nov. 2004 à 23:10
bah non puisqu'il faux sans cesse attendre pour de nouveaux clients !! et le Sleep est OBLIGATOIRE sinon ton processeur sera utilisé à 100% et donc au bout de quelques connexion en // bah ton serveur il crève
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 20053 22 nov. 2004 à 19:02
je ne me rappelle plus du code, cela dit, autre qu'une boucle infinit serai chose impossible voir très casse tête. Le sleep doit être pour soulager le proc ?!
parker_
Messages postés2Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention13 décembre 2004 22 nov. 2004 à 12:30
Y aurait pas un meilleur moyen que de faire une boucle infinie et un sleep dans le accept
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 20053 16 nov. 2004 à 18:31
j'ai appris récemment comment faire un serveur http et on m'a redirigé vers http://www.salemioche.com/. Voilà, pour commencer je pense que ce serai déjà pas mal (moi même je vais essayé de m'en servir)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 15 nov. 2004 à 23:17
le point 6 de cette RFC décrit très précisément le standard des réponses, et donc la façon dont en-tête et contenu sont séparés.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 15 nov. 2004 à 23:07
"la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!"
le C++ a hérité des chaînes du C. PHP est codé en C. PHP n'a donc fait qu'implémenter des fonctions faciles qui traitent les chaînes C classiques. Ce qui veut dire (en substance ^^) qu'il t'appartient quand tu programmes en C++ de coder toi-même tes classes de gestion de chaînes de caractères. Ceci dit, tu es déjà TRÈS bien aidé par la classe standard string (en-tête <string>, à ne pas confondre avec <cstring>, qui est en fait l'ancien <string.h> du C).
pour récupérer un document web (entendons: via le protocol HTTP), tu dois utiliser des "sockets". càd que tu vas utiliser soit une librairie de sockets portable, soi directement winsocks sous windows par exemple, ou équivalent pr un autre OS, et utiliser les méthodes de cette librairie pour
1/ te connecter au serveur web via l'IP et le port (l'IP peut aussi être un nom de domaine: hostname en fait)
2/ envoyer une requête "HTTP-compliant", càd qui respecte les normes définies par la dernière RFC HTTP. tu pourras trouver de la doc là dessus assez aisément, ne fut-ce que dans les exemples de sockets PHP, en général ils utilisent HTTP 1.0 et c'est assez simple.
3/ récupérer la réponse du serveur, toujours via ta librairie de sockets, et traiter cette réponse comme bon te semble.
L'avantage, c'est que le protocol HTTP est très simple. Cela vient en partie du fait que c'est un protocol qui n'utilise pas de connexions persistantes: tu veux une page: tu te connectes, tu demandes, tu reçois, point. T'en veux une autre? tu te reconnectes etc... Ça veut dire que tu n'as absolument pas besoin de garder des traces des précédentes communications etc: c'est plus facile.
Tu auras probablement juste un souci (le même que moi): la réponse du serveur contient des en-têtes HTTP suivis du contenu effectif, et je n'ai jamais trouvé de référence qui me disait comment séparer ces deux parties (faut dire que je suis vrmnt un boulet quoi :p ça doit être bête comme chou mais j'ai aps été fichu de trouver, ni de chercher correctement)
rosemarie302
Messages postés3Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention15 novembre 2004 15 nov. 2004 à 22:39
slt ta source et pas mal du tout!
moi je vien de la programmation php et la j'essay de me mettre au c++ avec dev-cpp5 enfin 4.5.5.9 un truc dans le genre, mais impossible de trouver comment recuperer une page html sur un serveur pour la traiter ensuite.
et comme je voi que tu est a l'ecoute du monde s'aurais tu me dire comment on recupere une page html pour traiter son contenue?? parce que j'ai beau cherhcer impossible de trouver une source claire et surtout qui compile.
et pourrai ton envisager de jumeller c++ et php pour la programmation avec un module php, parce que la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!
du genre le programme ce lance, et execute un script en php (page php) et recupaire les donner a la fin...
merci davance pour ton aide
menfin deja si tu peut me dire comment recuperer une page html et dl un image sa serai super. merci
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 20053 29 oct. 2004 à 13:11
Shellut
Moi j'essay de faire mon propre serveur http, et j'ai jeter un oeil sur celui-ci, déjà il me met une belle erreur au démarrage, et ensuite je trouve la source très mal commenter. C'est dommage. 5/10
simtiers
Messages postés207Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention 2 novembre 2006 3 oct. 2004 à 18:33
Salut !
Moi aussi, j'essaie de faire mon petit serveur HTTP.
Pour l'instant, il gère les méthodes GET, HEAD et POST.
J'utilise PHP.exe pour lire mes pages PHP, mais j'ai un pb: dès que j'ouvre une page PHP utilisant les sessions, PHP.exe crée une session mais en ouvre une autre (vide )lors de l'avancée du client dans le site.
Du peux m'expliquer pourquoi ?
theXman
Messages postés37Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention11 mars 2006 28 juin 2004 à 05:56
ca fait plaisir de voir des bonnes sources OPEN pour win.
pas le temps de regarder pour l'instant, mais BON COURAGE
++
cs_yAAm
Messages postés45Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention22 février 2006 24 juin 2004 à 16:42
0040233E cmp byte ptr [eax],2Eh
00402341 jne 00402345
Tel est la ligne (3E) qui sur laquelle le programme a planté invalid handle value . .. apres une connexion en telnet sur 127.0.0.1 .
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 24 juin 2004 à 15:21
gosh, me sens bête ^^ désolé pour ça.
du reste, y a qd même un problème assez sérieux au niveau de la gestion des requêtes avec des caractères spéciaux (%yz). ça doit pas être bien compliqué à coder, mais la gestion des chaînes de caractères c'est tjs :(.
à ce propos, tu as oublié un free() après ton malloc() dans la fonction executer_requete, vers le début du code tu alloues de la mémoire pour l'fichier_url si j'ai bonne mémoire, et puis j'ai pas vu le free (mais peut-être suis-je à nouveau bête ^^ j'ai plus le code devant moi)
cs_Belt
Messages postés47Date d'inscriptionjeudi 13 juin 2002StatutMembreDernière intervention 3 juillet 2006 24 juin 2004 à 15:13
Faut regarder exemple_config.ini !!
---> Pour ton problème c'est parce que il manque le ";" à la fin du chemin il faut écrire :
[MODULES]
ks=C:\HTTPTest\ks.exe;
[FINMODULES]
[MySql]
[FINMySql]
et là ca marchera !!
Je suis en train de travailler dessus alors hésite pas à me donner des idées, mais bon d'abord je m'occupe de la commande POST et de sécurisé
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 24 juin 2004 à 14:55
bon, ben ça fait 2h que je chipote dans le code et... j'ai des problèmes.
Moi je voudrais pouvoir accéder à des répertoires avec un espace dans le nom, et donc j'ai écrit un bout de code pour remplacer les %20 par des espaces (je devrais en fait remplacer les %yz par des 0xyz mais soit), de tte façon, même si la modification est bien fait (j'ai vérifié ds la console), ça marche pas. et puis en fait, j'ai l'impression que c'est l'accès à un autre répertoire qui bloque :(
ah puis j'ai aussi écrit un module vite fait:
#include
using namespace std;
int main(int argc, char *argv[])
{
cout << "<html>\n<head>\n<title>KiruaScript HTTP Server Module</title>\n</head>\n\nks script working!\n\n</html>" << endl;
return 0;
}
j'ai compilé ça dans ks.exe, et j'ai mis ça dans config.ini:
et quand j'appelle un fichier vide (0 octet) nommé index.ks comme ceci:
http://127.0.0.1/index.ks, je reçois une page vide :( (enfin, juste un caractère, mais pas affichable, dans le bloc note, c'est un espace).
pourtant ça marchait impec avec des pages htm/html classiques ou même des fichiers images / flash etc, j'ai testé avec un site flash justement, et il n'y a pas de problème, donc c'est pas une question de caractère qui passe mal dans le contenu à renvoyer :(
viens de tester avec "blabla" dans mon fichier index.ks, et ça renvoie "blabla ". argmf :(
je fais qq ch de travers? et tous les résultats de test là, c'est en ayant enlevé le bout de code-bidouille que j'avais écrit donc, ça vient pas de là.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 24 juin 2004 à 13:04
ouéééééééééé ça marche :-D j'ai juste dû couper Apache, c'est tout.
Hmmm, je pense que je vais m'amuser avec ton serveur, cette idée de module perso en C++ me réjouit ^^ tu mettras les màj ici n'est-ce pas? ah, puis arrange-toi pr que ton serveur devienne pas trop populaire, parce que ça m'énerverait que des hackers s'intéressent aux failles de sécurité ;-)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 24 juin 2004 à 13:01
raah, j'ai Erreur au démarrage, zuut, j'ai trop envie de le tester ton serveur! j'adorerais pvr écrire mes modules en PHP :) ce serait trop bon et d'après ton fichier Notice.txt, c'est vrmnt easy game! hmm, t'as pas une idée du pq j'ai une erreur?
dans serveur.ini j'ai: RACINE=C:(pas le droit d'aller jusque programe files à cause de l'espace)
j'ai pas touché à config.ini.
Est-ce que ça peut être à cause de Apache qui est lancé en même temps?
cs_Belt
Messages postés47Date d'inscriptionjeudi 13 juin 2002StatutMembreDernière intervention 3 juillet 2006 23 juin 2004 à 12:25
Ouais c'est clair que dans ma prochaine version je règlerais ce "problème" mais bon pour une utilisation "normale" ça suffit, il devrait pas y avoir de buffer overflow. Merci pour ta note !
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 23 juin 2004 à 11:55
Ah j'aimerai bien que ton logiciel soit utilisé : comme ca je pourrai m'entrainer au BO :D
Il est plus qu'indispensable que tu corriges les problemes de taille fixe, etc...
14 oct. 2012 à 11:06
14 août 2007 à 18:12
Merci pour se Serveur Web
il est tré simplifier et Tré Functionaile
je veux te contacter en Persone
ou je peux trouver ton Email SVP ?
26 févr. 2005 à 17:34
13 déc. 2004 à 22:24
13 déc. 2004 à 21:19
C est quand meme plus propre que de mettre un sleep..
22 nov. 2004 à 23:18
22 nov. 2004 à 23:10
22 nov. 2004 à 19:02
22 nov. 2004 à 12:30
16 nov. 2004 à 18:31
15 nov. 2004 à 23:17
ftp://ftp.isi.edu/in-notes/rfc2616.txt
le point 6 de cette RFC décrit très précisément le standard des réponses, et donc la façon dont en-tête et contenu sont séparés.
15 nov. 2004 à 23:07
le C++ a hérité des chaînes du C. PHP est codé en C. PHP n'a donc fait qu'implémenter des fonctions faciles qui traitent les chaînes C classiques. Ce qui veut dire (en substance ^^) qu'il t'appartient quand tu programmes en C++ de coder toi-même tes classes de gestion de chaînes de caractères. Ceci dit, tu es déjà TRÈS bien aidé par la classe standard string (en-tête <string>, à ne pas confondre avec <cstring>, qui est en fait l'ancien <string.h> du C).
pour récupérer un document web (entendons: via le protocol HTTP), tu dois utiliser des "sockets". càd que tu vas utiliser soit une librairie de sockets portable, soi directement winsocks sous windows par exemple, ou équivalent pr un autre OS, et utiliser les méthodes de cette librairie pour
1/ te connecter au serveur web via l'IP et le port (l'IP peut aussi être un nom de domaine: hostname en fait)
2/ envoyer une requête "HTTP-compliant", càd qui respecte les normes définies par la dernière RFC HTTP. tu pourras trouver de la doc là dessus assez aisément, ne fut-ce que dans les exemples de sockets PHP, en général ils utilisent HTTP 1.0 et c'est assez simple.
3/ récupérer la réponse du serveur, toujours via ta librairie de sockets, et traiter cette réponse comme bon te semble.
L'avantage, c'est que le protocol HTTP est très simple. Cela vient en partie du fait que c'est un protocol qui n'utilise pas de connexions persistantes: tu veux une page: tu te connectes, tu demandes, tu reçois, point. T'en veux une autre? tu te reconnectes etc... Ça veut dire que tu n'as absolument pas besoin de garder des traces des précédentes communications etc: c'est plus facile.
Tu auras probablement juste un souci (le même que moi): la réponse du serveur contient des en-têtes HTTP suivis du contenu effectif, et je n'ai jamais trouvé de référence qui me disait comment séparer ces deux parties (faut dire que je suis vrmnt un boulet quoi :p ça doit être bête comme chou mais j'ai aps été fichu de trouver, ni de chercher correctement)
15 nov. 2004 à 22:39
moi je vien de la programmation php et la j'essay de me mettre au c++ avec dev-cpp5 enfin 4.5.5.9 un truc dans le genre, mais impossible de trouver comment recuperer une page html sur un serveur pour la traiter ensuite.
et comme je voi que tu est a l'ecoute du monde s'aurais tu me dire comment on recupere une page html pour traiter son contenue?? parce que j'ai beau cherhcer impossible de trouver une source claire et surtout qui compile.
et pourrai ton envisager de jumeller c++ et php pour la programmation avec un module php, parce que la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!
du genre le programme ce lance, et execute un script en php (page php) et recupaire les donner a la fin...
merci davance pour ton aide
menfin deja si tu peut me dire comment recuperer une page html et dl un image sa serai super. merci
29 oct. 2004 à 13:11
Moi j'essay de faire mon propre serveur http, et j'ai jeter un oeil sur celui-ci, déjà il me met une belle erreur au démarrage, et ensuite je trouve la source très mal commenter. C'est dommage. 5/10
3 oct. 2004 à 18:33
Moi aussi, j'essaie de faire mon petit serveur HTTP.
Pour l'instant, il gère les méthodes GET, HEAD et POST.
J'utilise PHP.exe pour lire mes pages PHP, mais j'ai un pb: dès que j'ouvre une page PHP utilisant les sessions, PHP.exe crée une session mais en ouvre une autre (vide )lors de l'avancée du client dans le site.
Du peux m'expliquer pourquoi ?
28 juin 2004 à 05:56
pas le temps de regarder pour l'instant, mais BON COURAGE
++
24 juin 2004 à 16:42
00402341 jne 00402345
Tel est la ligne (3E) qui sur laquelle le programme a planté invalid handle value . .. apres une connexion en telnet sur 127.0.0.1 .
24 juin 2004 à 15:21
du reste, y a qd même un problème assez sérieux au niveau de la gestion des requêtes avec des caractères spéciaux (%yz). ça doit pas être bien compliqué à coder, mais la gestion des chaînes de caractères c'est tjs :(.
à ce propos, tu as oublié un free() après ton malloc() dans la fonction executer_requete, vers le début du code tu alloues de la mémoire pour l'fichier_url si j'ai bonne mémoire, et puis j'ai pas vu le free (mais peut-être suis-je à nouveau bête ^^ j'ai plus le code devant moi)
24 juin 2004 à 15:13
---> Pour ton problème c'est parce que il manque le ";" à la fin du chemin il faut écrire :
[MODULES]
ks=C:\HTTPTest\ks.exe;
[FINMODULES]
[MySql]
[FINMySql]
et là ca marchera !!
Je suis en train de travailler dessus alors hésite pas à me donner des idées, mais bon d'abord je m'occupe de la commande POST et de sécurisé
24 juin 2004 à 14:55
Moi je voudrais pouvoir accéder à des répertoires avec un espace dans le nom, et donc j'ai écrit un bout de code pour remplacer les %20 par des espaces (je devrais en fait remplacer les %yz par des 0xyz mais soit), de tte façon, même si la modification est bien fait (j'ai vérifié ds la console), ça marche pas. et puis en fait, j'ai l'impression que c'est l'accès à un autre répertoire qui bloque :(
ah puis j'ai aussi écrit un module vite fait:
#include
using namespace std;
int main(int argc, char *argv[])
{
cout << "<html>\n<head>\n<title>KiruaScript HTTP Server Module</title>\n</head>\n\nks script working!\n\n</html>" << endl;
return 0;
}
j'ai compilé ça dans ks.exe, et j'ai mis ça dans config.ini:
[MODULES]
ks=C:\HTTPTest\ks.exe
[FINMODULES]
[MySql]
[FINMySql]
et ça dans serveur.ini:
RACINE=C:/HTTPTest
et quand j'appelle un fichier vide (0 octet) nommé index.ks comme ceci:
http://127.0.0.1/index.ks, je reçois une page vide :( (enfin, juste un caractère, mais pas affichable, dans le bloc note, c'est un espace).
pourtant ça marchait impec avec des pages htm/html classiques ou même des fichiers images / flash etc, j'ai testé avec un site flash justement, et il n'y a pas de problème, donc c'est pas une question de caractère qui passe mal dans le contenu à renvoyer :(
viens de tester avec "blabla" dans mon fichier index.ks, et ça renvoie "blabla ". argmf :(
je fais qq ch de travers? et tous les résultats de test là, c'est en ayant enlevé le bout de code-bidouille que j'avais écrit donc, ça vient pas de là.
24 juin 2004 à 13:04
Hmmm, je pense que je vais m'amuser avec ton serveur, cette idée de module perso en C++ me réjouit ^^ tu mettras les màj ici n'est-ce pas? ah, puis arrange-toi pr que ton serveur devienne pas trop populaire, parce que ça m'énerverait que des hackers s'intéressent aux failles de sécurité ;-)
24 juin 2004 à 13:01
dans serveur.ini j'ai: RACINE=C:(pas le droit d'aller jusque programe files à cause de l'espace)
j'ai pas touché à config.ini.
Est-ce que ça peut être à cause de Apache qui est lancé en même temps?
23 juin 2004 à 12:25
23 juin 2004 à 11:55
Il est plus qu'indispensable que tu corriges les problemes de taille fixe, etc...
mais sinon c'est une bonne source : 8/10