-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sunday 16 December 2001 17:21, Matthias Petermann wrote: [cut]
Deshalb: Wie kann ich Prozesse unter Linux am einfachsten mit- einander kommunizieren lassen, wenn es einen Server-Prozess und eine beliebig wechselnde Menge an Client-Prozessen geben soll? Für ein hilfreiches Stichwort wäre ich sehr dankbar, gehört habe ich schon einmal Begriffe wie IPC, Sockets etc..., weiß aber nicht, was jetzt wo einzuordnen ist.
Server: Bau eine AF_LOCAL Socket in /tmp oder /var auf. (man: socket(2), bind(2), listen(2), unix(7)) Dann hast Du erstmal eine Serversocke, die Du zum Aufbauen echter Verbindungen nehmen kannst.
Dann lausche mit select(2) an dem Teil und warte auf ein Read-Ereignis (read in Ermangelung einer "IWANTCONNECT"-Queue). Wenn es kommt will jemand eine Verbindung aufbauen: mit accept(2) annehmen und danach fleissig auf der Serversocke nach weiteren Verbindungen lauschen.
accept gibt Dir einen neuen Deskriptor, auf dem Du ueber das selbe select auf echte Read-Ereignisse warten kannst (read(2) genau lesen, um rauszubekommen, wann die Gegenseite die Verbindung geschlossen hat; errno(3)).
Wenn was ankommt einfach Display updaten....
Client: Socket erzeugen und mit dem Server verbinden (man: socket(2), connect(2), unix(7)). Dann einfach reinschreiben und Socket wieder zumachen (shutdown(2), close(2)).
Konrad
- -- BOFH excuse #79:
Look, buddy: Windows 3.1 IS A General Protection Fault.