Heute haben wir uns nochmal mit Sockets beschäftigt, haben Remote Procedure Calls (RPCs) angesprochen und einige Punkte zum Praktikum geklärt.
| Skript-Anfang | VS_2_So2014_1 – Seite 54 |
|---|---|
| Skript-Ende | VS_2_So2014_2 – Seite 39 |
Was bringen Sockets beim Thema Transparenz?
- Offenheit
Was muss man tun um X Byte zu verschicken?
- Ein
send()kann zu mehreren notwendigenrecv()führen - Einsatz einer While-Schleife bis alle Bytes empfangen wurden
- Entweder man definiert eine Art Protokoll mit Header (Size) um die Daten auszutauschen
- oder man begrenzt Anfang und Ende von Nachrichten durch Nicht druckbare Zeichen
Remote Procedure Call (RPC)
- Sinngemäß „Aufruf einer fernen Prozedur“
- Technik zur Realisierung von Interprozesskommunikation
- Ermöglicht den Aufruf von Funktionen in anderen Adressräumen
- Es gibt unterschiedliche und meist inkompatible Implementierungen dieser Technik
Funktionsweise
- Versenden einer Nachricht vom Client-Prozess zum Server-Prozess
- Die Nachricht enthält den Namen der Prozedur (oder eine ID) und die zugehörigen Parameterwerte
- Zustellen der Nachricht mittels Broadcast oder Verzeichnisdienst
- Nachricht kommt beim Server an, der diese Prozedur implementiert
- Auf dem Server läuft ein Portmapper-Daemon, der auf einem TCP- und UDP-Port lauscht (111 oder 135)
- Der Portmapper koordiniert die Funktionsaufrufe, indem er die Prozesse erschafft, einen vordefinierten Prozess bereitstellt oder Threads erzeugt