begin process at 2010 02 10 09:10:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SERVEUR HTTP EVOLUTIF PHP,MYSQL,PERL....

SERVEUR HTTP EVOLUTIF PHP,MYSQL,PERL....


 Information sur la source

Note :
5 / 10 - par 6 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Niveau :Expert Date de création :23/06/2004 Date de mise à jour :30/06/2004 15:57:01 Vu / téléchargé :7 634 / 1 266

Auteur : Belt

Ecrire un message privé
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Version 1.1 de mon serveur http sous dev cpp,
il est évolutif par le biais de modules, c'est pourquoi vous pouvez ajouter les modules php, mysql, perl et même vos propres modules.

Le serveur gère le multithread pour avoir plusieurs connexions simultanées

Cette nouvelle version corrige les problèmes de chaines de caractères fixe, ajoute aux réponse HTTP les entètes normalisée avec le type MIME du fichier.
Cette version est aussi plus rapide que la version précédente.

Le serveur gère pour l'instant les commandes GET et HEAD du protocole HTTP.


 Conclusion

Il ne devrait pas y avoir de bug, au cas ou j'ai mis dans le zip l'éxecutable autonome qui na pas besoins de dll.

Avis à tous ceux qui veulent m'aider !!!!!
Je cherche à pouvoir charger les modules comme le fait apache pour php parce que pour l'instant j'utilise l'interpréteur php.exe qui ne permet pas d'utiliser les formulaires et les sessions. J'ai cherche un peu et j'ai trouvé quelques info sur php4isapi.dll mais bon c'est assez dur donc si vous savez comment faire contactez moi !!!!!!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip TIM_RESEAU, CLASSES POUR RESEAU COMPLET par williamallas
Source avec Zip INTERNET IP FINDER TROUVER VOS ADRESSE IP (INTERNET) par xmustapha
Source avec Zip CLIENT/SERVEUR AVEC TSOCKETSERVER & TCLIENTSOCKET par xmustapha
Source avec Zip REMOTE SHELL GEN par ganjarasta
PROXY IRC SIMPLE (WINDOWS/WINSOCK) par _michel

Commentaires et avis

Commentaire de Xs le 23/06/2004 11:55:12

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...

mais sinon c'est une bonne source : 8/10

Commentaire de Belt le 23/06/2004 12:25:31

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 !

Commentaire de Kirua le 24/06/2004 13:01:50

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?

Commentaire de Kirua le 24/06/2004 13:04:23

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é ;-)

Commentaire de Kirua le 24/06/2004 14:55:34

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 <iostream>
using namespace std;

int main(int argc, char *argv[])
{
  cout << "<html>\n<head>\n<title>KiruaScript HTTP Server Module</title>\n</head>\n<body>\n<b>ks script working!</b>\n</body>\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à.

Commentaire de Belt le 24/06/2004 15:13:39

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é

Commentaire de Kirua le 24/06/2004 15:21:36

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)

Commentaire de yAAm le 24/06/2004 16:42:27

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 .

Commentaire de theXman le 28/06/2004 05:56:51

ca fait plaisir de voir des bonnes sources OPEN pour win.
pas le temps de regarder pour l'instant, mais BON COURAGE

++

Commentaire de simtiers le 03/10/2004 18:33:11

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 ?

Commentaire de minet03 le 29/10/2004 13:11:51

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

Commentaire de rosemarie302 le 15/11/2004 22:39:14

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

Commentaire de Kirua le 15/11/2004 23:07:44

"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)

Commentaire de Kirua le 15/11/2004 23:17:50

vala, une tout petite recherche et c'était réglé:

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.

Commentaire de minet03 le 16/11/2004 18:31:42

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)

Commentaire de parker_ le 22/11/2004 12:30:07

Y aurait pas un meilleur moyen que de faire une boucle infinie et un sleep dans le accept

Commentaire de minet03 le 22/11/2004 19:02:54

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 ?!

Commentaire de Belt le 22/11/2004 23:10:31

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

Commentaire de minet03 le 22/11/2004 23:18:59

j'avais donc raison, mais à quoi pense ces jeune programmeur ? sans doute a la même chose que nous quand on étai jeune :-)

Commentaire de parker_ le 13/12/2004 21:19:39

Ca serait qd  meme mieux de mettre un select .
C est quand meme plus propre que de mettre un sleep..

Commentaire de Belt le 13/12/2004 22:24:29

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 !

Commentaire de adnane60 le 26/02/2005 17:34:34

est ce que vous pouvez me bien données une explication sur le  serveurapche

Commentaire de VPNVB le 14/08/2007 18:12:10

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 ?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales