mikrocontroller.net

Forum: PC-Programmierung Server in c++


Autor: Dennis Zolk (Firma: School) (dixidoener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wikipedia --> HTTP

Autor: Dennis Zolk (Firma: School) (dixidoener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thx aber gibts nich vllt ein spezielles für c++??

Autor: Artur Funk (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier gerne der Server von mir, vielleicht hilft es dir weiter. Ach ja, 
Port beachten, http://localhost:6215

Kanst ja natürlich 80 nehmen.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jorge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dennis Zolk (Firma: School) (dixidoener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: oha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Dennis Zolk (Firma: School) (dixidoener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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_Pr...)
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...

Autor: Dennis Zolk (Firma: School) (dixidoener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Pascal O. (raven761)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dennis Zolk (Firma: School) (dixidoener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.