Le plus petit serveur web au monde

Soyez le premier à donner votre avis sur cette source.

Vue 8 336 fois - Téléchargée 699 fois

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 / Exemple :


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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
1 mars 2009

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...
Messages postés
2
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
1 mars 2009

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 !
Messages postés
15
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
21 décembre 2007

Qulques optimisations possibles mais il est très bien fait et très efficace ;-)
Messages postés
14
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
1 février 2010

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 !)
Messages postés
112
Date d'inscription
vendredi 27 octobre 2000
Statut
Membre
Dernière intervention
26 janvier 2011
1
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
Afficher les 22 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.