Kommunikationsmechanismen |
|
|
named pipes
|
|
sockets
|
|
streams
|
|
shared memory
|
| |
? |
Unterschiede?
|
Entfernung |
der Prozesse in einem Rechnernetz
|
|
- auf einer Maschine
- innerhalb eines Dateisystems
- LAN
- WAN
|
| |
named pipes |
Kommunikation innerhalb eines
Dateisystems
|
| |
Anonyme pipes |
|
| |
Named pipes |
gleiche Wirkung:
|
|
mknod "/tmp/pipe" p
who > /tmp/pipe &
wc -l </tmp/pipe
rm /tmp/pipe
|
| |
|
Die pipe kann von mehr als zwei Prozessen genutzt werden.
|
| |
client server |
allereinfachste Version mit named pipes:
|
|
mknod message p
mknod answer p
server <message > answer &
client <answer > message &
...
rm message client
|
| |
n Erzeuger ein Verbraucher |
mknod pipe p
consumer < pipe &
producer1 > pipe &
producer2 > pipe &
...
producerN > pipe &
|
| |
sockets |
Kommunikation im WAN
|
|
- unsymmetrische Kommunikation: client server
- server horcht auf einem port
- client initiiert die Verbindung
|
| |
in Tcl |
|
Klient |
|
|
öffnet einen Dateideskriptor für einen client socket
|
Server |
socket -server <opencommand> <port>
|
|
Das <opencommand> Kommando wird beim Öffnen einer Verbindung zu einem Klienten
auf dem Server ausgeführt
|
| |
asynchrones Lesen |
von einem Eingabestrom
|
|
fileevent <filedesc> readable <command>
|
|
Sowie Daten im Eingabestrom zur Verarbeitung bereitliegen,
wird <command> ausgeführt
|
| |
|
Ein-/Ausgabe über eine Ereignis-Schleife (event loop) abarbeiten.
|
|
Eigene I/O Ereignisse (events)
|
| |
Einfachster server |
echo server
|
|
Nimmt seine Eingaben und schickt sie an die Absender zurück
|
| |
|
Wichtige Testarchitektur für den Kommunikationstest
|
|
|