ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4420846
Jetzt (Chat):
42 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
Algorithmen und Datenstrukturen
Re: Web-Interface
Normal
AutorThema
Halan Offline
ZFX'ler


Registriert seit:
22.01.2005

Bayern
Web-InterfaceNach oben.
Hey,

ich hab die kranke Idee mein kleiens project auch vom web zugreifbar zu machen.

Überleg etz gerade ob ich nen kleine mini-server in C++ schreib. so mit fork und bsd ports. Aber frag mich halt obs da vielleicht einfachere möglichkeiten gibt. Vlt schon ganze libs die mir beim layout und so helfen.

04.12.2008, 16:31:36 Uhr
Lynxeye Offline
ZFX'ler


Registriert seit:
30.11.2002

Sachsen
Re: Web-InterfaceNach oben.
Einen kleine Webserver zu schreiben ist kein Problem, schlag dir das fork aber aus dem Kopf. Da gibt es inzwischen deutlich besser Möglichkeiten, die auch deutlich besser von der Performance her sind.

Ich habe über das Thema eine Belegarbeit geschrieben. Die findest du unter hier. Ist allerdings eine Version ohne Quelltext, wenn du den haben willst würde ich den auch noch Online stellen. Von der Performance her sollte der Server allen Anwendungen genügen, bloß ein CGI Interface fehlt ihm, da er im Rahmen der Arbeit nur statische Seite ausliefern sollte. Das geht dafür aber sehr fix.
04.12.2008, 16:58:12 Uhr
Halan Offline
ZFX'ler


Registriert seit:
22.01.2005

Bayern
Re: Web-InterfaceNach oben.
Vielen Dank erstmal
es wär toll ein bisschen deines quellcodes sehen zu können.

aber versteh ich das richtig du verwendest threads statt prozessen? Das ist vielleicht unter windows schnell aber afaik ist fork um einiges schneller auf linux 2.6.

Noch zur information ich versuche nicht einen standart webserver zu schreiben wie apache oder so sonst würde ich dne ja benutzen sondern einen der quasi direkt auch html aus dynamischen daten meines servers generiert.

Würde das ganze gernen in eine klasse kapseln die dann quasi nurnoch nach dem HTML/CSS code fragt.
Und vielleicht noch einer die mir hilft diesen zu generierern
04.12.2008, 17:45:40 Uhr
Lynxeye Offline
ZFX'ler


Registriert seit:
30.11.2002

Sachsen
Re: Web-InterfaceNach oben.
Threads sind inzwischen auch unter Linux verdammt schnell. Wie ich schon gesagt habe: fork ist veraltet, auch auf der Linux Plattform. Spätestens mit der 2.6er Kernelreihe hat sich das Threadmanagement von Linux stark gebessert, und die hat inzwischen auch einige Zeit aufm Buckel. Dazu kannst du ja mal bisschen was in Sachen NTPL lesen.

Standartkonform ausliefern musst du das HTML trotzdem. Also mach eine strikte Trennung zwischen Webserver und Backend, welches das HTML generiert. Dazu würde ich etwas wie das CGI Interface schreiben, was bei Anforderung der Daten auf das Backend zugreift.

Meinen Quellcode findest du hier.

1 Mal gendert, zuletzt am 04.12.2008, 20:33:45 Uhr von Lynxeye.
04.12.2008, 20:29:00 Uhr
Halan Offline
ZFX'ler


Registriert seit:
22.01.2005

Bayern
Re: Web-InterfaceNach oben.
cool hab mir das ganze jetz mal selbst mit easyhttp zusammengebastelt.

nur weiss ich nicht ob ich die boost threading library gscheit benutze.

Code:
s32 s = conn.accept();

    if(s >= 0)
    {
        logger.log(ELMT_Info, \"Processing HTTP-Request\");

        boost::function0 f = boost::bind( &CWebServer::serverThread, &*this, s);
        boost::thread td(f);
    }


der code läuft ohne eine beschwerde perfekt aber ich frag mich halt ob ich die threads nicht iwie managen muss oder so

grüße,
Halan
13.12.2008, 17:52:59 Uhr
dLoB Offline
ZFX'ler


Registriert seit:
27.06.2005

Nordrhein-Westfalen
Re: Web-InterfaceNach oben.
Verwendest du einen alten Compiler oder warum hast du boost::function0 anstatt boost::function genommen?
14.12.2008, 15:25:55 Uhr
Halan Offline
ZFX'ler


Registriert seit:
22.01.2005

Bayern
Re: Web-InterfaceNach oben.
Zitat von dLoB:
Verwendest du einen alten Compiler oder warum hast du boost::function0 anstatt boost::function genommen?


wo ist da der Unterschied?

mit function bekomme ich.
Code:
CWebServer.cpp:56: Fehler: Variable »boost::function<int, std::allocator<void> > f« hat Initialisierung, aber unvollständigen Typ


ich verwende G++ 4.3.1 und boost 1.35

grüße,
Halan
21.12.2008, 01:26:04 Uhr
dLoB Offline
ZFX'ler


Registriert seit:
27.06.2005

Nordrhein-Westfalen
Re: Web-InterfaceNach oben.
Wenn du das "normale" boost::function nimmst, dann brauchst du die Anzahl der Parameter nicht anzugeben, wie es mit den Zahlen der Fall ist.
Zitat:
Boost.Function has two syntactical forms: the preferred form and the portable form. The preferred form fits more closely with the C++ language and reduces the number of separate template parameters that need to be considered, often improving readability; however, the preferred form is not supported on all platforms due to compiler bugs. The compatible form will work on all compilers supported by Boost.Function.
Das passiert dann nämlich automatisch anhand des template Arguments:
Code:
boost::function f = boost::bind( &CWebServer::serverThread, this, s);

G++ sollte in der Version auch locker damit klarkommen. Und warum machst du ein &*this??? Du dereferenzierst den Zeiger um ihn dann gleich wieder zu referenzieren? :-D Ein normales this reicht völlig aus.
21.12.2008, 14:39:01 Uhr
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel