Hallo Marc, was du beschrieben hast nennt Stevens (Programmieren von UNIX Netzen) man einen "Concurrent server" im Gegensatz zum "Iterative server", der eine Verbindunng akzeptiert und Nachrichten single-threaded bearbeitet, resp. dem "Multiplexer", der gemäss dem Event Modell mit einem Prozess/Thread Nachrichten mehrerer Verbindungen bearbeitet. Einen "Concurrent server" kannst du entweder mit durch "fork()" erzeugte Prozesse oder Multithreaded realisieren. Du musst dir das allerdings etwas schwieriger als eine Java Lösung vorstellen. Sockets sind nämlich heimtückisch und keinesfalls so trivial wie es auf dem ersten Blick ausschaut. Neben dem Buch von Stevens empfehle ich dir Brown "Programmieren verteilter UNIX Anwendungen". MfG -Hans On Friday 03 January 2003 08:10, Marc Eißele wrote:
Datum: Fri, 3 Jan 2003 08:07:44 +0100
Hallo,
ich habe mal vor langer Zeit einen Chatserver in Java geschrieben, jetzt bin ich am überlegen das Teil (aus Übungszwecken) auf Linux in C++ zu portieren Jetzt frage ich mich natürlich ob ich die Architektur/Klassenhierarchie des Servers in C++ so übernehmen kann oder ob man C++SocketServer unter Linux anders baut. Der Javaserver ist multithreaded und startet für jede Verbindung einen neuen Thread und gibt dem ein Socket-Objekt mit über das er dann kommunizieren kann(wies wahrscheinlich schon 1000de vor mir gemacht haben). Natürlich habe ich aussen rum noch einiges gebastelt wie z.B. eine Chatter-Hierarchie mit verschiedenen Rechten und mehrere Gruppen und Räume. Meine eigentliche Frage ist also: Würde man das in C++ genauso machen, sprich ein Thread nimmt Verbindungen an und startet Chatter-Objekte in einem Thread und gibt diesen ein Socket Objekt mit oder läuft da die Implementierung anders?
mfg, Marc