Hallo Ich wollt mir einen Web Server in c++ Programmieren der mit dem Internet Explorere Funktioniert also Sprich als Protokoll HTTP Jetzt meine Frage gibt es für so etwas Tutorials?? Gruss
Hier gerne der Server von mir, vielleicht hilft es dir weiter. Ach ja, Port beachten, http://localhost:6215 Kanst ja natürlich 80 nehmen.
Dennis Zolk wrote: > Hallo > Ich wollt mir einen Web Server in c++ Programmieren Nein, ich verspreche dir, das willst du nicht. Guck dich mal im Linux-Lager um: - Apache - lighttpd Die gibts beide als Quelltext zum reinschnuppern. Vorsicht, Konsolenprogramme, also quasi prinzipbedingt unverschämpt kompliziert und unbedienbar für Windows-Benutzer, siehe entsprechende Threads hier.
Vielleicht solltest du erstmal schreiben wie deine Kenntnisse in C++ sind. Hast du schon mit Sockets gearbeitet? Bist du sicher bei String operrationen? Kennst du die Vor und Nachtile von Threads Forks. Willst du alles selber schreiben oder auf fertige Libs zugreifen, da sollte es schon ein paar HTTP-Server libs geben.
MFC: Du machst einen Socket (Klasse CSocket) auf und stellst ihn auf "listen". Wenns einer probiert dann gibts mit "accept" einen neuen Socket von dem man mit read und write alles machen kann. Es ist ein fertiges Beispiel für Visual C++ in den "samples" mit drin. Im normalen C läuft es analog auch das gibt ein fertiges Beispiel von Mycro. Unter dot net ist es noch etwas einfacher also genauso ähnlich wie in Dschawa. Schau mal unter www.galileocomputing.com
Sven Pauli wrote: > Dennis Zolk wrote: >> Hallo >> Ich wollt mir einen Web Server in c++ Programmieren > Nein, ich verspreche dir, das willst du nicht. Ein bisschen Socket-Programmierung, ein bisschen HTTP-Protokoll und schon laeuft das. Natuerlich ist es auch keine Aufgabe fuer jemanden, der noch gar kein C++ kann. > Guck dich mal im Linux-Lager um: > - Apache > - lighttpd > Die gibts beide als Quelltext zum reinschnuppern. Oh ja, das hilft einem Anfaenger wirklich weiter. Apache wuerde ja den Clean-Code-Contest gewinnen, wenn es ihn gaebe.
Dennis Zolk wrote:
> Thx aber gibts nich vllt ein spezielles für c++??
Deine Frage zeigt, dass du noch nicht so weit bist. Wenn du C++ kannst,
ist es kein Problem anhand des RfCs von HTTP 1.0 das ratz fatz zu
machen. Also erst C++ lernen, dann mal einen minimalen HTTP-Client
basteln und der Rest kommt dann von alleine...
Ihr denkt alle viel zu weit. Die Frage war: > Jetzt meine Frage gibt es für so etwas Tutorials?? Antwort: vermutlich schon. Siehe http://www.gidf.de
Also Thx erstmal an alle @Sven Pauli Danke für die Tipps aber ich wollts wirklich alleine machen. Weil mich diese Materie sehr interessiert. @Bartli Auch wenn du mich ärgern wollts thx für den Link einfach genial muss ich mir merken Aber dabei gesagt ich hab bestimmt schon Gegoogelt sonst würd ich net fragen. @peter Mit Sockets mach ich öfters mal was. String operationen bin ich recht fitt. Thread Forks okay das sagt mir gar nix :-) Arbeite mit Dev C++ also wird nix mit der MFC. @Artur Funk Danke Danke werd ma rein schaun gruss
Was soll C++ an einem Server ? Der Vorteil Klassen instanzieren @ ableiten zu koennen ist nicht wirklich der Hammer fuer einen Server. Wenn man etwas an Performance haben will verzichtet man eh auf dynamisches memory.
@oha Ich benutze c++ nicht nur für den Server sondern Überhaupt für alles was ich mach. Sonst kann ich nur en bissl Java Script und html Scripten Aber keine andere Programmiersprache mehr.
Dennis Zolk wrote: > @oha > Ich benutze c++ nicht nur für den Server sondern Überhaupt für alles was > ich mach. Einfach nicht hinhoeren. Du bist in einem Mikrokontroller-Forum, da glauben viele Leute, 1000 Zeilen sind ein grosses Programm und der einzige Weg zu optimieren sei Assembler. Und nun ran, einfach mal GET implementieren und den Rest ignorieren.
Peter Stegemann wrote: > Einfach nicht hinhoeren. Du bist in einem Mikrokontroller-Forum, da > glauben viele Leute, 1000 Zeilen sind ein grosses Programm und der > einzige Weg zu optimieren sei Assembler. Ja, und glauben außerdem, dass dynamische Speicherverwaltung den Server grottenlahm machen würden.
@oha
> Was soll C++ an einem Server?
also ich sehe da schon Vorteile, jeder Client der gleichzeitig
verarbeiter wird ist ein Object.
Ohne dynamisches memory wird es recht schwer ein Server zu schreiben
oder willst du von anfang gleich mal 2GB Speicher in beschlag nehmen,
wenn doch mal mehrere Anfrage kommen.
Klar wenn man den Kompletten Server in ASM schreibt, und auf Dynamischen
Speicher verzichtet geht es noch ein wenig schneller - zum schluss ist
aber die Festplatte/Netzwerkkarte eher der Engpass als ein paar speicher
Anforderrung.
Dennis Zolk wrote: > Mit Sockets mach ich öfters mal was. > String operationen bin ich recht fitt. Dann schreib ein Programm was einen ServerSocket auf Port 80 öffnet und einfach vom InputStream alles auf die Konsole schreibt. Dann öffnest du deine Browser und gibst als addresse http://127.0.0.1/index.htm ein und schaust dir die Ausgabe an... das wird dan in der art sein: GET /index.htm HTTP/1.1 (Siehe auch http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Funktionsweise) Das heißt der Client fordert dich auf die datei index.htm zu liefern. Diese schreibst du dann in den Outputstream deines Sockets, Vorher noch die Information das alles ok war: HTTP/1.1 200 OK und zwei Zeilenumbrüche (\r\n) und schon zeigt der Brwoser diese an Fertig ist dein erste Webserver... Den rest kanst du nach und nach dazu stricken im Wiki artikel stehn die Wichtigsten Sachen drin...
Ihr wart mir ne Super Hilfe Leute Danke hab einiges an fortschritten gemacht der server kann schon bei einem Aufruf ne standard Seite öffnen und bin schon fast mit der GET Routine fertig also thx werd mich nochmal melden wenn ich noch fragen hab
Dennis Zolk wrote: > Ihr wart mir ne Super Hilfe Leute Danke hab einiges an fortschritten > gemacht der server kann schon bei einem Aufruf ne standard Seite öffnen > und bin schon fast mit der GET Routine fertig also thx werd mich nochmal > melden wenn ich noch fragen hab Übrigens: Neben C++ ist auch Deutsch eine Sprache mit klaren Vorschriften für die Interpunktion.
Falls du mehrere Clients bedienen willst, dann arbeite mit select(). Google einfach "c++ select() server". da findest du ne menge sachen! und nein, ein server der mit c++ und klassen geschrieben ist, läuft mindestens genauso gut wie ein mit c geschriebener! ich schreib hier grad ein multithreading testprogramm und behandel hiermit über 30 clients. jeder client ballert den server mit über 100MB/s voll :-) achso, dynamisch anlegbare server sind übrigens auch kein problem
Ja kla das mit select hab ich alls schon hab schon nen kleinen Server ´für ein Game von mir geschrieben und Klassen hab ich eigentlich nur eine und zwar für den HTTP Header die ließt die Länge von der Datei und so. Sonst ist das ja eigentlic C aus villeicht die c++ Strings
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.