Laden...

Kleiner Webserver

Erstellt von pdelvo vor 15 Jahren Letzter Beitrag vor 14 Jahren 10.361 Views
pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren
Kleiner Webserver

Hallo,
Ich möchte hier einen kleinen Webserver vorstellen.
Er stellt die Webseiten auf Port 80 bereit und ist über die Ip des Hosts verfügbar.
Vieleicht hat jemand noch Anregungen.

pdelvo

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Hier ein Screenshoot :

M
9 Beiträge seit 2008
vor 15 Jahren

Danke dafür, du hast mich sehr inspiriert 😃

Bugreport kommt morgen.

344 Beiträge seit 2007
vor 15 Jahren

Hallo, wäre Klasse wenn man auch Bilder anschauen könnte
die sich im http Ordner befinden 😃

Schöne Grüße

👶-> :]-> 8o-> 🙂

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Eigendlich geht das. Aber bei mir geht das jetzt überhaubt nicht mehr. Bei mir komm immer bei l.Bind(ipe); eine Exception mit dem Code 10013. Ich weiß auch nicht warum. 🤔 Werde jetzt mal Googlen.

EDIT : Sehe gerade das die Version hier eine alte ist. Desswegen funktionieren auch die Bilder nicht da der falsche Mime.Type Versand wird. Ich werde wenn alles wieder funktioniert eine neue Version hochladen.

Gruß pdelvo

344 Beiträge seit 2007
vor 15 Jahren

Hallo, wollte mal fragen ob du weiter gekommen bist ^^

Grüße

👶-> :]-> 8o-> 🙂

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Werde hier heute noch die Aktuellste Version hochladen.

Gruß pdelvo

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Hier ist die neuste Version.Sie ist standartmässig auf Port 81 Eingestellt.

Gruß pdelvo

M
227 Beiträge seit 2008
vor 15 Jahren

wie wäre es mit einer erweiterung mit datenbank und php oder noch besser asp.net 3.5???
habs gefühl, dass das zu viel arbeit sit oder?

**"Niemand wird je mehr als 640KB RAM benötigen!" **

Bill Gates, 1981

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Das ist schon richtig viel Arbeit. PHP hat sehr viele Funktionen. Die müsste ich alle nachbilden, oder gibt es irgendwo ne Lib dafür?
Ich weiß nicht wie ich Asp.Net nachbilden soll. Ich bin da kein Profi. Vieleicht weiß da jemand anderes weiter und kann mir einen Tip geben?

Gruß pdelvo

76 Beiträge seit 2007
vor 15 Jahren

PHP wird in andere Webserver wenn ich jetzt nicht komplett daneben liege auch nur eingebunden.
Die eigentlichen PHP Dateien kannst du dir hier runter laden:
http://www.php.net/downloads.php

Dort gibt es auch den Quellcode.

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Ich hab jetzt keinen Schimer wie ich das angehen muss. Außerdem bin ich im Moment voll ausgelastet. Das kommt erstmal auf der Liste ganz nach hinten.

Gruß pdelvo

M
303 Beiträge seit 2006
vor 15 Jahren

@pdelvo: Sorry, aber gehst du ernsthaft davon aus, dass Webserver Programmiersprachen implementieren? Wozu soll ich dann die ganze Toolchain noch brauchen? Und was wäre das für ein monolithisches System?
Am besten noch eingebundene Datenbankengines? Vielleicht solltest du dir mal die Theorie hinter der Technik ein wenig anschauen, würde wohl auch deinem Webserver zu Gute kommen.

Du musst im Prinzip einfach nur den PHP Interpreter über CGI einbinden. Das wäre zumindest ein erster Schritt.

pdelvo Themenstarter:in
1.346 Beiträge seit 2008
vor 15 Jahren

Wie schon gesagt, ich bin im Moment mit einem anderem Projekt voll ausgelastet. Ich habe keine Zeit mir das jetzt genauer an zu sehen. Siehe Signatur.

Gruß pdelvo

Gelöschter Account
vor 15 Jahren

wenn er das alles einbinded, dann hat das ncihts mehr mit einem kleinen webserver zu tun.

3.511 Beiträge seit 2005
vor 15 Jahren

ASP.NET zu hosten ist relativ einfach. Such mal nach "Cassini". Das Ding ist ein extrem kleiner WebServer der ASP.NET hostet. Dieser wird allerdings auch benutzt, wenn man unter VS 2008 Web WCF Dienste entwickelt (da heißt das Ding allerdings nicht Cassini). Der ASP.NET Host ist mit ein paar Zeilen Code hochgezogen.

PHP wird da wahrscheinlich schon etwas interessanter 😃

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

79 Beiträge seit 2004
vor 15 Jahren

PHP wird da wahrscheinlich schon etwas interessanter 😃

Wieso? Erster Schritt wäre den Parser auf der Kommandozeile aufzurufen, wenn die Dateiendung entsprechend ist, das Dokument da durchzujagen und den Output and den Client zu senden.

PHP kümmert sich ja nicht um die Webinhalte.
http://de.wikipedia.org/wiki/Php#Allgemein <- Da sieht man das ganze Prozedere mit normalen CGI.
FastCGI wäre die nächste bessere Variante. Allerdings ist das auch massiv aufwändiger: http://de.wikipedia.org/wiki/FastCGI

Was ich nur nicht weiß ist, wie PHP das mit eigenem HTTP-Header macht. Wahrscheinlich wird das nur vorne angehangen. Man bekommt als Client also den Standard-Header des Webservers, dann die, vom PHP-Script generierten Daten, bestehend aus Header und dann dem "Rest".

Interessanter wird es, wenn du zum Beispiel ISAPI implementierst. Da geht dann allerdings nicht mehr viel im Managed Bereich. Das Zeug ist unmanaged.
Oder du implementierst dir eine Pluginschnittstelle und schreibst dir eigene Module, die dir die ganzen Parser aufrufen.

Klein ist das allerdings dann nicht mehr 😉

3.511 Beiträge seit 2005
vor 15 Jahren

Achso, wenn das so einfach geht...

Hab mich mit dem Thema noch nicht wirklich großartig auseinander gesetzt 😃. Hab mir halt nur mal den Cassini Sourcecode angesehen und war selber etwas erstaunt, wie einfach man ein ASP.NET Host hochziehen kann.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

49.485 Beiträge seit 2005
vor 15 Jahren

Wenn ihr weitermacht, ist das zumindest kein kleiner Thread mehr. Aber ich denke, es ist auch alles gesagt. Projekte-Threads sollten im Interesse der potentiellen Verwender bitte immer möglichst kurz/knapp sein. Vielen Dank!

479 Beiträge seit 2008
vor 14 Jahren

Hallo pdelvo,

leider muss ich dir mitteilen, dass ich deinen Server mit den simpelsten Mitteln hacken konnte.

Hier der Ablauf, selber eingetippt mit Putty:

GET /../../../Program.cs HTTP/1.1
HTTP/1.1 200 OK
Date:04.12.2009 21:44:33
Server:MyCSharp.de Server
Content-Length: 480
Content-Type: application/octet-stream; charset=utf-8

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Webserver
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("MyCSharp.de Server \nPress Enter to Exit\n\n||||||||||||||||||||||||||||||||||||||\n\n");
            Server s = new Server();
            s.Ip = 81;
            s.Run();
            Console.ReadLine();
            s.Stop();
        }
    }
}

Schon hat der Client die Sourcen des Servers. So bekomme ich auch jede andere Datei auf meinem Rechner.
War nur mal eine Anregung, nichts schlimmes 😁

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)