Eigener Webserver

Präsentation und Organisation von eigenen Projekten
Antworten
Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Eigener Webserver

Beitrag von Jside » Mi Jan 21, 2009 12:25 am

Da ich bei meinem Windowmanager nicht weiterkomme(Das mit den Fenstern ist etwas "happy"), möchte ich erstmal - so als Entspannung ein älteres Projekt wiederaufnehmen(~~Winter 2007): Einen Webserver:

Und der funktioniert sogar:
Die Executiv enthält einen Clienten, der nicht funktioniert(andem ich noch arbeite) und eine Serversoftware, die einwandfrei läuft zum Testen könnt ihr es wiefolgt einstellen:
Terminal hat geschrieben: [ jan@hjpp-pub ]: ./server -s 123
...der Wert 123 sollte eigentlich eine Logdatei darstellen, aber indemfall wird diese nochnicht benutzt, weswegen ihr den 2ten Parameter durch was ihr wollt ersetzten könnt...
Terminal hat geschrieben:[OK] Use as Server.
Use Port:5000
[OK] Use Port 5000 Ok.
Quit after a number of transferes (0 = unlimited):0
[OK] Quit after 0 transfers Ok.

Server is running.
Port 5000 ist immer frei, aber wenn der Apache nicht läuft, könnt ihr auch Port 80 benutzten(Oder über "netstat" herausfinden, welche noch frei sind). Jetzt könnt ihr in eurem Browser auf 127.0.0.1:5000/<datei> gehen(Beziehungsweise localhost:5000/<datei>)(esseiden ihr lasst das auf einem anderen Rechner laufen), wobei ihr <datei> durch eine Datei im Verzeichniss, indem die Executiv ist ersetzt. Der Browser dürfte nun die Datei öffnen/oder einen Download starten, wenn es keine anzeigbare Datei ist. Im Terminalfenster dürftet ihr nun folgendes sehen:
[OK] Connection request: 127.0.0.1
[OK] GET Command recived.
[OK] HTTP Command recived.
[OK] GET Command for file fluidscene.blend found!
[OK] File found. Send now!: fluidscene.blendServer is running.
Da hab ich einmal \n vergessen O_o indemfall habe ich die Datei "fluidscene.blend" gedownloadet.

Das Teil hat aber Null Sicherheit, also kommt bloßnicht auf die Idee, das außerhalb eures Homenetztwerkes zu benutzten *g*

TODO:
- Bei leerem request(ohne das eine explizite Datei genannt wird) die Seite index.html senden(wenn vorhanden)
- Sicherheit, den Server nur auf bestimmte Verzeichnisse begrenzen, und bestimmte Commands nicht zulassen.
- Den Clienten zum laufen bringen.

Wie ich auf die Idee gekommen bin:
Ich musste einige große Dateien im Homenetztwerk hin und herschieben, und auf den Rechnern, aufdem die Dateien drauf sind extra nen Apache zu konfigurieren, war mir zuviel Arbeit, also hab ich halt diesen 183 Zeilige Programm gebastelt ;) Eigentlich sollte via Option -c ein Consolenbasierendes Empfangsprogramm zur Verfügung gestellt werden(Damit auch meine Non-GUI Systeme mitladen können), was aber bislang nochnicht funktioniert.(Da hab ich mir mit Wget weitergeholfen ;) )

Bugtracker:
[WW] HTTP Command not found from parser - Fehlerhafte Anfrage vom Browser Lösung: versucht einen anderen Browser.(Auf Firefox 2 gehts)
[WW] GET Command not found from parser - Keine Datei angegeben Lösung: Wie oben beschrieben eine Datei hinter 127.0.0.1:5000/ setzten
[EE] File not extists Spricht aus sich alleine.
[EE] Please specife a filename. - einfach hinter der -s einen weiteren pseudo parameter setzten.

Benötigte Includes:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
Die dürfte jedes Linux haben.

Compiliert mit:
Linux linux-yqa4.lan 2.6.25.18-0.2-default #1 SMP 2008-10-21 16:30:26 +0200 i686 i686 i386 GNU/Linux
cc (SUSE Linux) 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036
Linux Binarys:
(Datei speichern unter...)
http://jside.bplaced.net/images/server

Quellcode Kommentiere ich noch durch, und Layoute den noch, der ist nämlich ...via vi von mir in der Console geproggt worden, und ist total unleserlich, das ich euch den erstmal nicht zumuten will xD Den gibts dann ganz exklusiv in meinem nächsten Post in diesem Thread :P

P.s. LOL wenn ich so überlege, was ich in einer "kriesensituation" so alles programmiere....

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Eigener Webserver

Beitrag von cloidnerux » Mi Jan 21, 2009 2:53 pm

Was man nihct alles macht in seiner Freizeit.
Aber klingt gut.
Quellcode Kommentiere ich noch durch, und Layoute den noch, der ist nämlich ...via vi von mir in der Console geproggt worden, und ist total unleserlich, das ich euch den erstmal nicht zumuten will xD Den gibts dann ganz exklusiv in meinem nächsten Post in diesem Thread :P
Hats den Spaß gemacht :D ??
Haupsache der Server funktioniert.
Das Teil hat aber Null Sicherheit, also kommt bloßnicht auf die Idee, das außerhalb eures Homenetztwerkes zu benutzten *g*
Naja, kann ja nicht alles Perfekt sein ;)
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten