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
Danke dafür, du hast mich sehr inspiriert 😃
Bugreport kommt morgen.
Hallo, wäre Klasse wenn man auch Bilder anschauen könnte
die sich im http Ordner befinden 😃
Schöne Grüße
👶-> :]-> 8o-> 🙂
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
Hallo, wollte mal fragen ob du weiter gekommen bist ^^
Grüße
👶-> :]-> 8o-> 🙂
Hier ist die neuste Version.Sie ist standartmässig auf Port 81 Eingestellt.
Gruß pdelvo
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
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
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.
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
@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.
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
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)
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 😉
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)
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!
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