![](https://seccdn.libravatar.org/avatar/8576ac1b72af7a8d7391dbaa48c37e65.jpg?s=120&d=mm&r=g)
Till Wollenberg wrote:
Hallo!
Eilert Brinkmann schrieb:
"Till Wollenberg" wrote:
Ich frage mich allerdings, ob man zwangsläufig per fork() eine Child-Instanz erzeugen muß? Der Daemon muß nur mit einem "Client" zur gleichen Zeit arbeiten können.
Um mehrere Verbindungen zu bedienen, müßte ich also wieder mit mehreren Prozessen oder Multi-Threading arbeiten. :(
Nicht unbedingt -- Es geht auch anders. [Sonst gäbe es unter Linux kaum Daemons, da nur die wenigsten multi-threaded sind, bez. sich forken. Vor nicht allzu langer Zeit (unter libc4 und libc5) gab es unter Linux noch keine Threads :)] Es genügt, die einem select(2) übergebenen fdsets richtig aufzusetzen, zu verwalten, den Rückgabestatus von select(2) auszuwerten und dann entsprechend verzweigen (siehe man 2 select, erweitere mal das dort angegebene Beispiel.).
Wenn mein Daemon (eine Art Mini-Datenbank) jedoch immer nur sehr kurze Verbindungen hat (Anfrage -> Antwort -> Schluß), könnte man dann von Daragrammen sprechen?
Nein. Mit Datagrammen im umgangssprachlichen Sinne ist eigentlich immer das UDP-Protokoll gemeint.
Zum Schluß nochmal zu den Sockets: man findet dazu fast nichts mit den gängigen Suchmaschinen. Nach langer Suche bin ich jedoch auf die folgenden zwei URLs gestoßen, bei denen sich Beispielprogramme finden:
http://www.ecst.csuchico.edu/~beej/guide/ipc/usock.html http://www.cs.toronto.edu/~maclean/csc209/Fall99/
Dann wirf mal einen Blick auf O'Reilly's Web/ftp-Site (www.ora.com bzw. ftp.ora.com) und suche nach John Bloomer's Buch "Power Programming with RPC". Auch wenn dieses Buch nicht das neueste ist und etwas weiter geht als Du es brauchst, gibt es eine recht ausführliche Einführung in die Socket-Programmierung und Demos im Quellcode. Ansonsten solltes Du es in Erwägung ziehen, mal den Quellcode einiger Daemons zu analysieren (Suche nach select im Quellcode von einfachen Daemons -- Nicht gerade im apache :) ). Ralf --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com