Server programm

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Lunatix

Betreff: Server programm

BeitragDi, Okt 03, 2006 10:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hio.

Wollte einfach mal wissen, hat es schonmal jemand geschafft eine art Hauptserver - programm zu schreiben (bis hier hin kein problem) der auf
einem Linux system OHNE grafische oberfäche lief?

Ich habe mir schon einen kleinen server geschrieben, und BMax ist auch bestellt, die frage die sich mir eben stellt, läuft das dann auch...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Dreamora

BeitragDi, Okt 03, 2006 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Theoretisch kein Problem.
Der Server muss nur dennoch X11 nutzen, da das vom Anwendungskern benötigt wird.

Aber für eine Serveranwendung taugt BM nicht, weil es keine Threads unterstützt und auch nicht durch Hacks um diese Erweitert werden kann, weil der GarbageCollector - der Kern von BM - nicht threadsafe ist.

(und nein du kannst auch nicht externe Threads und Callbacks nutzen, ausser diese sind nur sehr kurz. Sonst gibts mit grosser Wahrscheinlichkeit ebenfalls einen crash)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Lunatix

BeitragDi, Okt 03, 2006 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
mh wie meinst du das mit den Threads?

Es soll ein programm sein, das per tcp clients akzeptiert und eine server liste sendet - mehr nicht. Auf meinem Win rechner hier geht das ja auch. Nut eben die frage ob auf Linux ohne X11 auch...

btbn hatte mal sowas gemacht, das lief wegen einem Exeption ding nich richtig - dazu musste er aber irgendwie per hand compilieren, wegen dem Millisecs() befehl, da dieser anscheinend X11 haben wollte
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Dreamora

BeitragDi, Okt 03, 2006 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne X11 gehts nicht.
Der Anwendungskern der deine Anwendung unter Linux startet, nutzt X11. Also auch wenn du rein garnix mit Grafik oder sonstwas hast, muss X11 da sein um das Programm überhaupt zu starten.
-> X11 ist zwingende voraussetzung auf dem Heimbastel OS (ist so ziemlich die einzige die es hat)

Ach so, dachte du wolltest wirklich was Richtung Server, nicht nur handshake oder sowas.
Das sollte soweit kein Problem sein.

Allerdings weiss ich nicht ob du für das was du vor hast nicht mit einem simplen kleinen C programm zu mehr performance kommst ... da der GC in dem falle mehr störend als unterstützend ist, da dein Programm eigentlich nix macht.


EDIT: Alternativ könntest du auch einfach eine PHP nehmen Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Di, Okt 03, 2006 13:03, insgesamt 2-mal bearbeitet

Lunatix

BeitragDi, Okt 03, 2006 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibts ein Tutorial in der richtung?
Weil ich kann nicht wirklich C... ein bissl C++ aber wirklich nur kleines bissl...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Vertex

BeitragDi, Okt 03, 2006 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora: wärst du mal so nett zu erleutern, was BMax Executables unter Linux benötigen und wozu?

Ich meine, warum X11(ich geh mal davon aus, dass das ein GUI für Linux ist)? Wer ist dafür verantwortlich? Der Compiler, der Assembler, die Libraries oder die Module?

Zumindest im Konsolenbereich würde ich doch mal gerne Linuxprogramme entwickeln, die am besten auch mal unter jeder Distribution, ohne irgendwelchen Zusatzlibs o. ä., auskommen. Bei StandardIO müsste das doch mal der Fall sein.

mfg olli
vertex.dreamfall.at | GitHub

hamZta

Administrator

BeitragDi, Okt 03, 2006 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab schon BlitzMax-Server für Linux-Textmode geschrieben, die auch alle in der Bash funktionierten. Ob und wie weit irgendwelche X11-Dev-Pakete installiert sein müssen, weiß ich nicht mehr, im Prinzip sollte es komplett ohne X11 funktionieren.

Man muss eben aufpassen, welche Module man verwendet.

hamZta
Blog.
 

Dreamora

BeitragDi, Okt 03, 2006 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Vertex: Schau dir dazu am besten Mal BRL.System an.
Dort ist alles, was genutzt wird, X basierend ist.
System.h, die BRL.System kernheader Datei includiert auf Linux Seite zbX11/Xlib.h

Ich weiss nicht inwiefern X ohne grafische Oberfläche "blöd reagiert".
Am besten einfach Mal ausprobieren, wie so vieles. Kann schlimmstenfalls nicht gehen oder? Smile

Falls es nicht will, kann man ja immer noch die C Sources entsprechend ersetzen.
Was ich zb nicht ganz sicher bin das es nicht austickt ist der Eventbestandteil. Da die Systemtreiber das übernehmen und Konsolen (glaub ich zumindest?) keine Events haben.

PS: X11 ist doch eigentlich ein Kernbestandteil von Linux, nicht? (bzw. eine ältere Version bei alten Installation. Der "grafische" Aspekt kommt doch eigentlich durch Gnome, KDE und die anderen 30 Systeme rein?) Solange die Linuxdistri einigermassen aktuell ist, sollte das eigentlich vorhanden sein.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BtbN

BeitragMi, Okt 04, 2006 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist sehr wohl möglich, BMax von X11 zu lösen.
Ich selbst habe es mal geschafft, BRL.System von jeglichem X11-abhängigen Code zu befreien, sodass am Ende eine Binary heraus kam, die nicht mehr gegen die XLib gelinkt war.
Dabei sind allerdings viele Befehle aus BRL.System zu Dummy geworden, da ich ihren kompletten inhalt entfernen muste.
MilliSecs gehörte da aber zum Glück nicht zu.

rema

BeitragDo, Okt 05, 2006 5:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit:

Code: [AUSKLAPPEN]

Framework pub.stdc
Import brl.standardio
Import brl.socket
Import brl.socketstream
Import ...


kann ich ohne Probleme eine Anwendung für die Konsole schreiben, bzw als Dienst im Hintergrund laufen lassen. Das klappt auch unter MacOSx.

Man darf einfach kein OpenGL, MaxGUI etc verwenden.

Vertex

BeitragDo, Okt 05, 2006 7:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Also BRL.System wird nicht eingebunden, wenn ich Framework benutze? Millisecs basiert jedoch auf einer X-Funktion und wie sieht es mit Dateioperationen aus - weil ich OpenURL darin gesehen habe.

Millisecs und die Dateibefehle sind ja Kernbestandteil eines jeden Servers, sei es nur, um eine Ini-Datei auszulesen.

mfg olli
vertex.dreamfall.at | GitHub

BtbN

BeitragDo, Okt 05, 2006 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, BRL.System wird nicht direkt eingebunden, wenn du ein Framework benutzt.
Aber nahezu jedes Modul aus BRL läd BRL.System, wodurch es trotzdem gelinkt wird, und somit auch gegen X11 gelinkt wird.
Ich weiss jetzt nicht mehr, welche Befehle alle vom X11 kommen, aber ich glaube MilliSecs gehörte nicht dazu.
Und OpenURL kann ruhig wegfallen, da es nichts mit Dateioperationen zu tun hat.
Die Dateisystems Operationen kommen auch nicht von X11, weshalb man X11 Problemlos aus BRL.System heraus löschen kann.

Vertex

BeitragDo, Okt 05, 2006 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Ja, Millisecs ist in Pub.StdC definiert. Genauso benötigt BRL.FileSystem fast auschließlich Pub.StdC und der ganze Socketkram auch.

Gut, das wollte ich nur wissen. Damit sollte es ja theoretisch möglich sein, für jedes Linuxsystem eine Konsolenanwendung zu schreiben ?oder

mfg olli
vertex.dreamfall.at | GitHub

BtbN

BeitragFr, Okt 06, 2006 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Jap, ist problemlos möglich. Ich kann meinen No-X11 Tweak für BRL.System ja auch mal ins Modul-Forum packen, fals interesse besteht.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group