WebServer

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von gfcwfzkm.

    Hi,

    ich möchte mir einen Webserver machen, brauche jedoch einen Tritt, um weiterzukommen.
    Im Google hab ich zwar beispiele gefunden, jedoch waren diese entweder in VB 5/6 oder man brauchte utilstall.exe (oder so was) was ich nicht hab.
    Deswegen wollte ich fragen, ob ihr beispielprojekte kennt, wo ich mich etwas austoben und experimentieren kann...

    thx im vorraus...

    mfg
    Im Prinzip ganz easy, zuerst schauste dir ein HTTP Header an, hierzu gibts das AddOn Live Header für den FF. Dann rufst du eine einfache WebPage auf, möglichst wo nichts weiter nachgeladen wird, sondern nur eine HTML Seite. Dann wirst du 2 Header in dem LiveHeader Fenster haben, einmal den den Header wo der Browser anfragt welche Seite der Server zurück geben soll und noch einige Informationen z.B. Typ des Browsers, welche Kodierungen er akzeptiert usw.
    Dann reagiert der Server und schickt einen Header zurück, wo z.B. angegeben ist welche Kodierung genommen wurde (keine, deflate, gzip, o.ä.) wie lang der Content ist (in Byte), von welchem Typ der Content ist, also z.B. plain/text, image/png, audio/wave und so weiter.

    Wenn du nun weist wie diese Kommunikation funktioniert ist der rest total einfach.

    Du machst ein TCP Listener (glaube der heißt so) der auf Port 80 lauscht. Geht eine Verbindung ein, startest du die Auswertung in einem neuen Thread, damit der Server auch weitere Connections aufbauen kann.
    In diesem Thread ließt du nun den Network Stream aus und analysierst den Header, welches Dokument wurde angefordert, welche Codierung usw.
    Dann lädst du das Dokument aus dem übermittelten Ordner (sofern das existiert) baust dir den Header zusammen, packst den Inhalt des angefragten Dokumentes einfach hinter den Header und schreibst diesen String wieder in den NetworkStream und schließt ihn anschließend.
    Im Browser würde nun das übermittelte Dokument angezeigt werden.

    Im Prinzip ist das nicht schwierig, aber man muss zum teil etwas rumprobieren bis es letztendlich so klappt wie man sich das vorstellt. Aber das HTTP-Protokoll ist relativ einfach und auch in VB gut umzusetzten.
    Habe sowas selbst schonmal gemacht, nicht als WebServer für HTML Dateien, sondern das man einfach Dateien über HTTP Streamen kann und somit kein Ordner auf seinem Rechner freigeben muss oder der andere ein extra Programm hat, man gibt imh einfach eine URL und läd über dne Browser von dir die freigegebene Datei herunter. Was im prinzip das selbe ist wie mit übermittlen von HTML Dokumenten, bloß das der Content Type nicht Text sondenr Binary is und damit erkennt der Browser dies automatisch und bietet das Download Fenster an.