begin process at 2012 02 16 09:49:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > LE PLUS PETIT SERVEUR WEB AU MONDE

LE PLUS PETIT SERVEUR WEB AU MONDE


 Information sur la source

Note :
9,38 / 10 - par 8 personnes
9,38 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :web, serveur, server, http Niveau :Débutant Date de création :23/03/2002 Date de mise à jour :23/03/2002 18:57:01 Vu / téléchargé :6 903 / 563

Auteur : orisa

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

 Description

Je pense que je poste ici le plus petit serveur web jamais écris : prennez un nouveau projet VB rajoutez Microsoft Winsock control dans les composant, inserez ce composant sur la form et collez ce code source. voila vous avez un serveur web (rajoutez encore une page index.html dans le répertoire courrant) et voila ! c'est sans prétention, mais amusant ! je join aussi un zip pour les pas doué du copie/coller :-) si vous trouvez une astuce pour réduire encore le code je suis prenneur !

notez qu'il gere les erreures 404...  

Source

  • Private Sub Form_Load()
  • Winsock1.LocalPort = 80
  • Winsock1.Listen
  • End Sub
  • Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  • Winsock1.Close
  • Winsock1.Accept requestID
  • End Sub
  • Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  • Dim StrData As String, FNbr As Integer, Chr As String * 1, Str As String
  • Winsock1.GetData StrData
  • If Left(Mid(StrData, 6, InStr(6, StrData, " ") - 5), 25) = " " Then StrData = App.Path & "\index.html" Else StrData = Left(Mid(StrData, 6, InStr(6, StrData, " ") - 5), 25)
  • If Dir(StrData) = "" Then
  • Winsock1.SendData "<HTML><H1>404</h1></HTML>"
  • Else
  • FNbr = FreeFile
  • Open StrData For Binary As FNbr
  • Do While Not EOF(FNbr)
  • Get #FNbr, , Chr
  • Str = Str & Chr
  • Loop
  • Close FNbr
  • Str = "HTTP/1.1 200 OK" & vbCrLf & vbCrLf & Str
  • Winsock1.SendData Str
  • End If
  • End Sub
  • Private Sub Winsock1_SendComplete()
  • Winsock1.Close
  • Winsock1.Listen
  • End Sub
Private Sub Form_Load()
    Winsock1.LocalPort = 80
    Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    Winsock1.Close
    Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim StrData As String, FNbr As Integer, Chr As String * 1, Str As String
    Winsock1.GetData StrData
    If Left(Mid(StrData, 6, InStr(6, StrData, " ") - 5), 25) = " " Then StrData = App.Path & "\index.html" Else StrData = Left(Mid(StrData, 6, InStr(6, StrData, " ") - 5), 25)
    If Dir(StrData) = "" Then
        Winsock1.SendData "<HTML><H1>404</h1></HTML>"
    Else
        FNbr = FreeFile
        Open StrData For Binary As FNbr
        Do While Not EOF(FNbr)
            Get #FNbr, , Chr
            Str = Str & Chr
        Loop
        Close FNbr
        Str = "HTTP/1.1 200 OK" & vbCrLf & vbCrLf & Str
        Winsock1.SendData Str
    End If
End Sub
Private Sub Winsock1_SendComplete()
    Winsock1.Close
    Winsock1.Listen
End Sub

 Conclusion

Si vous voullez plus de sources, de démo et de logiciel (dont un serveur web plus complet) allez sur http://www.rature.com    

 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 du même auteur

Source avec Zip Source avec une capture RECONNAISSANCE DE CHARACTÈRE
Source avec Zip ASSEMBLEUR ET EMULATEUR 8086 !
Source avec Zip DÉBUT D'UN ASSEMBLEUR X86 EN VB
Source avec Zip Source avec une capture ENCORE PLUS PETITE MATRIX
Source avec Zip Source avec une capture EVOLUTION DE MON JEU DE LA VIE

 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) SERVEUR HTTP (FICHIERS/WEB) PARTAGEZ VOS FICHIERS par yvesyves
Source avec Zip Source avec une capture HTTP EXPLORER : SERVEUR WEB DÉDIÉ AU PARTAGE DE MÉDIAS par kroman
Source avec Zip Source avec une capture AWEB'S HTTP PARSER - PARSEUR HTTP par Ahweb
Source avec Zip SERVEUR HTTP QUI SUPPORTE PARFAITEMENT LE PROTOCOLE HTTP par gabchampagne
Source avec Zip NOUVEAU SERVEUR HTTP par gabchampagne

Commentaires et avis

Commentaire de max12 le 23/03/2002 17:26:35 administrateur CS

LOL il porte bien son nom, mais pas mal quand même simple, rapide et facile mais faudrais multiple socket

@++

Commentaire de orisa le 23/03/2002 17:36:41

merci :-) mais tu fais bien de le préciser : je n'ai pas essayé mais s'il y a

Commentaire de orisa le 23/03/2002 17:39:31

merci :-) et tu fais bien de le préciser : je n'ai pas essayé mais s'il y a trop  d'image sur la page a envoyer, le navigateur va tenter d'ouvrir de multiples connexions avec le serveur mais comme le winsock est occupé a l'envoi il ne répondra pas a partir de la seconde requette et ça risque de ne pas marcher... a tester donc (ça dépend aussi du délai d'attente avant d'estimer que la connexion est un echec)
A+
PS : désolé pour le faux commentaire pas fini de tout a l'heure :-)

Commentaire de The man whit the long hair le 23/03/2002 18:57:35

Eum j'ai l'air con mais ... comment on se connecte a sa a partir de IE ?

Commentaire de orisa le 23/03/2002 19:00:11

depuis un autre poste l'IP de la machine, pour tester sur la même machine que celle ou le server tourne il suffit de mettre :
http://127.0.0.1
ou
http://localhost
dans la bare d'adresse.

Commentaire de Benj1105 le 23/03/2002 21:11:52

Ce serait possible de commenter un peu plus le texte ? Est-ce qu on peut envisager de remplacer apache par ca ? Il faudrait ajouter un support du PHP aussi... Vila vila ! :)

Commentaire de Jackboy le 24/03/2002 20:26:42

salut, petite question, l'adresse http://127.0.0.1, comment c'ette adresse est t'elle attribuer ? Si deux serveur se connecte auront t'il la même adresse et comment changer ceci !!!!! Pour les fonctions d'un serveur le ftp, le php, mysql, etc, comment additionner c'est fonction à notre serveur.

Commentaire de Jackboy le 24/03/2002 20:28:32

salut, petite question, l'adresse http://127.0.0.1, comment c'ette adresse est t'elle attribuer ? Si deux serveur se connecte auront t'il la même adresse et comment changer ceci !!!!! Pour les fonctions d'un serveur le ftp, le php, mysql, etc, comment additionner c'est fonction à notre serveur.

Commentaire de orisa le 24/03/2002 21:04:53

l'adresse 127.0.0.1 ou localhost est l'adresse loop-back, toutes les machines possèdent cette adresse IP. mais on ne peut acceder a cette adresse que depuis la machine en question : si 2 postes sont sur un réseau chacun a l'adresse 127.0.0.1 mais chacune aura une (ou plusieurs) autre IP. pour la connaitre -&gt; ipconfig

Commentaire de logisim le 24/03/2002 21:52:32

Pour le PHP, je pense qu'on peut utiliser php.exe en plaçant les variables après le ? au début entre &lt;?php et ?&gt; et en faisant "php.exe page.php&gt;page.tmp" et envoyer le résultat page.tmp

Commentaire de croweyeZ le 24/03/2002 22:58:04

petit, mon cul??

du vrai petit
http://www.acme.com/software/mini_httpd/
http://aurora.esi.uem.es/~alo/?action=cherokee
http://www.acme.com/software/thttpd/
http://mathop.diva.nl/

et une comparaison
http://www.acme.com/software/thttpd/benchmarks.html

jamais un ocx windows ne sera petit
qu'on se le dise

Commentaire de orisa le 25/03/2002 07:36:48

c'est vrai que pour la taille de l'installation ça fait gros, pas seulement a cause de l'ocx mais aussi de tous les DLL de VB. n'empèche niveau code source aucun de ces exemples ne prend si peux de lignes de code, le plus petit prend 3,658 lignes !

Commentaire de leptidev le 25/03/2002 13:18:38

Moi je cherche un petit prog qui me permet juste d'utiliser du Php et des Bdd (SQL) sur ma machine, est ce que ton truc le permet ou sinon que faut-il faire de plus ??? est -il obligé de loader php.exe ????

Commentaire de Benj1105 le 25/03/2002 19:25:47

Bon, je suis en train d' essayer de le perfectionner pour qu' on puisse definir une page 404, 403 et pour le PHP, quand au MySQL il s' agit en fait d' un serveur à part ! Donc tu pourrais tres bien avoir un serveur MySQL sans serveur Web, ce que je veux dire c est que tu peux tres bien utiliser un serveur MySQL avec ce serveur Web.

Commentaire de beeline le 31/03/2002 10:15:11

moi aussi je suis interresser si tu fait un truc pour le php
ou meme l'asp ( si ti arrive )

je veut bien meme essayer avec mes modeste connaissance de t'aider

Beeline

Commentaire de Benj1105 le 28/04/2002 19:37:07

Pfiouuu........... j' avais lâcher le projet un peu car je voyais pas comment utiliser php.exe... mais bon... je me suis décider à écrire à la team de php pour leur demander ! Seul problème: mon anglais n' est pas très bon... alors si quelqu' un pouvait prendre contacte avec moi ce serait sympa ! On pourrait aussi se regrouper pour en faire un très bon serveur (bien qu' il soit déjà très bien). Avec l' accord de l' auteur original bien sûr...

Commentaire de Leniver le 30/10/2003 07:11:36

Joli boulo ....  moi je trouve simpa comme server ...

Commentaire de misterzinzin le 07/12/2003 22:21:10

pour une simple page c nickel mais des qu'on joue avec des cadre... et oui pas possible de gerer plusieur connection... enfin soit pour ceux qui veullent du php y as tjs easyphp telechargeable sur www.telecharger.com

Commentaire de zeboss31 le 24/05/2006 13:45:04

pourquoi utiliser le port 80?? etant donné qu'il est deja utilisé par l'ordi,winsock plante !! (enfin en tout cas chez moi oui, donc je met un port au pif et sa marche nikel :D !)

Commentaire de Artemis2 le 24/01/2008 21:07:44 10/10

Qulques optimisations possibles mais il est très bien fait et très efficace ;-)

Commentaire de ThibaultQuake le 25/02/2009 18:42:48 5/10

Cette source a éveillé ma curiosité et donc je me suis lancé dans le développement d'un démon http plus complet (pour le php par contre je sais pas comment on fait) mais pour gérer les multiples connections inévitables dès qu'il y a deux trois images c'est facile !
Il suffit de créer un groupe de contrôles winsock qui vont se charger de papoter pendant que un seul, toujours le même s'occupe d'écouter ! pas con hein !
Comme ça on n'arrête jamais d'écouter et dès qu'une requête arrive, le winsock qui écoute chope le premier contrôle du groupe qui glande et lui fait accepter la requête !

Commentaire de ThibaultQuake le 01/03/2009 15:42:15

Remarque : une solution est de créer de nouveaux contrôles winsock dynamiquement pour répondre aux requêtes. Cela implique quelques contraintes car il faut pouvoir les décharger au fur et à mesure sous peine que le programme se mettre à passer de quelques Mo de memoire vive utilisée à beaucoup plus...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb de serveur [ par laure ] bonjour,je travaille avec Microsoft Visual Interdev. J'ecris des pages en asp.Je ne comprends pas : j'ai un message d'erreur de ce style aund j'essaie PB SQL Server + instance nommée [ par keskispas ] KesKisPas Bonjour à tous. J'ai un gros problème sur SQL SERVER 2000 Je viens d'installer une instance nommée mais je n'arrive pas à m'y connecter d VB & Exchange Server [ par Simeoni ] Bonjour &#224; tous,Je souhaite me connect&#233; &#224; un serveur Exchange avec VB et r&#233;ccup&#233;rer des donn&#233;es et des e-mails stock&#233 Serveur en mode console [ par MorpionMx ] Bonjour, j'ai une question qui a surement une solution tout bete, mais je ne la connais pas. En fait j'ai un serveur en mode console, qui est adapt& Serveur en mode console [ par MorpionMx ] Bonjour, j'ai une question qui a surement une solution tout bete, mais je ne la connais pas. En fait j'ai un serveur en mode console, qui est adapt& Serveur en mode console [ par MorpionMx ] Bonjour, j'ai une question qui a surement une solution tout bete, mais je ne la connais pas. En fait j'ai un serveur en mode console, qui est adapt& serveur Http et get/post [ par smasher81 ] Allo, je cherche depuis quelques temps seulement la façon de receillir un get ou un post d'une page sur mon serveur.. tout simple la.. Pourrais-tu m'a Projet visual basic et publication web [ par mtcarmella ] bonjour, est ce possible &#224; partir d'une url d'acceder &#224; mon projet visual basic. comment proc&#233;der? Je ne sais pas si c'est ainsi, mais [ASP.net] Configuration IIS 5.1 [ par gregorian ] Bonjour, voici mon probl&#232;me je n'arrive plus &#224; cr&#233;er des web service. Je developpe sous VB.NET et j'&#233;tait dans une vieille version


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,967 sec (4)

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