Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Kleiner Webserver
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

Kleiner Webserver

beantworten | zitieren | melden

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
Attachments
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

Hier ein Screenshoot :
Attachments
private Nachricht | Beiträge des Benutzers
Milten
myCSharp.de - Member



Dabei seit:
Beiträge: 9

beantworten | zitieren | melden

Danke dafür, du hast mich sehr inspiriert :)

Bugreport kommt morgen.
private Nachricht | Beiträge des Benutzers
Blogscreen
myCSharp.de - Member

Avatar #avatar-2764.gif


Dabei seit:
Beiträge: 344
Herkunft: Stuttgart

beantworten | zitieren | melden

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


Schöne Grüße
:baby:-> :]-> 8o->
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von pdelvo am .
private Nachricht | Beiträge des Benutzers
Blogscreen
myCSharp.de - Member

Avatar #avatar-2764.gif


Dabei seit:
Beiträge: 344
Herkunft: Stuttgart

beantworten | zitieren | melden

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

Grüße
:baby:-> :]-> 8o->
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

Werde hier heute noch die Aktuellste Version hochladen.

Gruß pdelvo
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

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

Gruß pdelvo
Attachments
private Nachricht | Beiträge des Benutzers
marv100
myCSharp.de - Member



Dabei seit:
Beiträge: 227

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Zony
myCSharp.de - Member

Avatar #avatar-2875.gif


Dabei seit:
Beiträge: 76
Herkunft: NZ

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
marco.b
myCSharp.de - Member



Dabei seit:
Beiträge: 303

beantworten | zitieren | melden

@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.
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

wenn er das alles einbinded, dann hat das ncihts mehr mit einem kleinen webserver zu tun.
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
Andy1988
myCSharp.de - Member

Avatar #avatar-1647.gif


Dabei seit:
Beiträge: 79
Herkunft: Aachen

beantworten | zitieren | melden

Zitat von Khalid
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 ;)
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 479
Herkunft: Henstedt-Ulzburg

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers