Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » einfacher web server unter C++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.05.2003, 16:04 Uhr
~ycx
Gast


Hat jemand eine Ahnung wie ich einen Web Server unter C++ schreibe.
Ich bekomm das einfach nicht hin.
Es sollte nur ganz einfach strukturiert sein.
Wenn das Grundgerüsst steht bekomm ichs auch selber hin!
Hab bereits die Logfunktion geschrieben also das er die IP's in ne txt file logt!
ich benutze MS Visual Studio!
Wäre echt froh und dankbar über nen kurzen und knappen Quelltext!

PS: Wer Rechtschreibfehler findet darf sie behalten!
Danke schon mal!
seeja yCx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.05.2003, 16:22 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Vom Prinzip her kannst du folgendermaßen vorgehen:
Eine CAsyncSocket Klasse ableiten und auf Port 80 "listen". In Reiceive wirst du dann z.B. "GET www.fun-soft.de/index.php" bekommen. Dann schickst du die Daten an den Client. Die wichtigsten Befehle sind: DELETE, GET, HEAD, POST, PUT.
Auf http://sourceforge.net/ findest du schon komplexeren Source an.

mfg mike
--

Dieser Post wurde am 20.05.2003 um 16:24 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.05.2003, 16:07 Uhr
~ycx
Gast


Naja ehrlich gesagt hab ich auf der Site nicht alzu viel gefunden.
Kann aber auch daran liegen dass ich zu blöd bin ;-)
kA.
Naja währe net wenn mir jemand einen kleinen Source Code zuschicken könnte.
Ich weiß es hoert sich blöd an aber ich mach das nicht so lang und will ja von euch Meistern ;-) was lernen!
Is auch ok wenn mir jemand nen Link schick wo ich nen Open Soure Code finde!

Seas yCx^°^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.05.2003, 18:42 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Naja: Apache ist Open Source - so weit ich das weiß
Aber solchen Source zu verstehen, setzt schon fast eine Beteilung am Projekt voraus!
Der einfachste Weg um zu lernen, wie das ganze funktioniert, wäre bestimmt mal ein NT zu sniffen und den Traffic sich anzuschauen. Ist zwar eine Menge Arbeit - zeigt aber wirklich alles.
Oder du probierst es gleich in der MFC. Da wäre es wohl am besten, einfach einen 0815 Client zu schreiben und mal Verbindung zu einem HTTP Server aufzunehmen - um die Darstellung der Seite brauchst du dich normalerweise nicht zu kümmern. Ich hab so was bis jetzt nur mit einem POP Server gemacht
Darum bin ich mir auch nicht sicher, wieweit der Server Dateien selbstständig verschickt. Aber laut meiner Apache Logfile, fragt der Client für jedes Bildchen und für jeden Text selbstständig an. Also wäre deine Aufgabe nur, auf eine Anfrage die gewünschte Datei zu verschicken.
Lange Rede - kurzer Sinn (folgendes Sample ist nicht getestet )
1. Erstell eine MFC basierende Anwendung (z.B. SDI)
2. AKtiviere WinSocks im Assi - falls du dein Projekt jetzt schon ohne WinSocks erstellt hast: unter den registrierten ActiveX Steuerelementen gibts eine Datei Namens "WinSocks" -> einfach ausführen
3. Erstelle eine neue Klasse und mach sie public von CAsyncSocket
4. Dann füg einfach die virtuelle Funktion OnReceive ein.
Dort schreibst du lauter if Abfragen rein:

C++:
if(!strcmpi(szBuffer, "GET") {
//Datei an Client Senden
//Zugriff auf CAsyncSocket Variable, welche im Normalfall im Dialog definiert ist



So könnte es möglicherweise funktionieren. Die Frage ist jetzt natürlich, was passiert, wenn 2 Clients gleichzeitig connecten. Eine Möchlichkeit wäre die Instanzen in einer CMap zu speichern. Das verlangt aber wieder nach einem "Speicherveraltungssystem", da du die CMap Items ja auch wieder löschen musst.

Eine bessere Erklräung kann ich dir leider nicht bieten
Scahu dir einfach folgende Links durch und du müsstest in kürzester Zeit deinen eigenen Webdämon haben
www.sockaddr.com/HTTPa.zip
Asynchronous mode HTTP server. Works with WinSock 1.1 or 2 and any version of Windows -- 3.1 and above.
www.sockaddr.com/HTTPmt.zip
Multi-threaded HTTP server that uses blocking sockets, overlapped I/O and client threads to handle multiple simultaneous connections. (Requires WinSock 2)

Ich hoffe, das hilft dir weiter!!
mfg mike
--

Dieser Post wurde am 21.05.2003 um 18:42 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.05.2003, 19:00 Uhr
~ycx
Gast


K danke nochmal Mike. War echt hilfreich!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.05.2003, 19:12 Uhr
mike
Pinguinhüpfer
(Operator)


www.sockaddr.com/HTTPa.zip
Das erste Sample ist echt Wahnsinn!!!!! 44KB für nen Webserver lööööl
Der Source ist auch voll goil!!!!
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.05.2003, 16:58 Uhr
~ycx
Gast


Wollte den Server eigentlich in eine Shell exe machen alsio Consolenanwendung!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.05.2003, 18:43 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Sollte eigentlich kein Problem sein. Du kannst WinSocks, CSockets, CAsyncSocket meines Wissens auch in einer Konsolenanwenung verwenden.
Nur stellt sich da die Frage, ob es nicht klüger wäre, dass gleich in UNIX oder so zu machen, da es mir so vorkommt, dass Konsolenanwendungen bei M$ immer mehr in den Hintergrund "gestellt" werden.

mfg mike
--

Dieser Post wurde am 26.05.2003 um 18:44 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.05.2003, 19:40 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oder portabel, dann muss man sich die MFC-Klassen halt selberproggen (also CAsyncSocket usw)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: