|
Remote Procedure Call
Termin
Die Lösung für diese Aufgabe ist bis zum 04.02.2007 einzureichen.
Aufgabe 4
Diese Übung soll Sie mit der Programmierung mit dem Sun-RPC-Mechanismus
vertraut machen. Ziel der Übung ist es, Sie davon zu überzeugen, wie
einfach Client-Server-Programmierung mit einem RPC-Mechanismus ist.
Die Aufgabe besteht darin, ein Client-Server-System zu
programmieren. Der Server-Prozeß soll zwei Integer-Werte vom Client
entgegennehmen und deren Summe zurückliefern.
-
Schreiben Sie eine Spezifikationsdatei für den RPC vom Client
zum Server.
Benutzen Sie das Programm rpcgen
(auf ganymed),
um Client- und Server-Stubs zu erzeugen.
Hinweise:
-
Denken Sie sich eine zufällige Protokollnummer zwischen
0x40000000 und 0x5fffffff aus. Zum einen ist dieser
Bereich für Nutzerapplikationen reserviert, und zum
anderen garantiert die »Zufälligkeit«, daß Ihr
RPC-Server nicht mit dem RPC-Server eines Kommilitonen
kollidiert.)
-
Schreiben Sie die Server-Prozedur.
-
Schreiben Sie das Clientprogramm.
-
Übersetzen und linken Sie die Module des Server- und des
Client-Programms.
Hinweise:
-
Verwenden Sie den C-Compiler gcc zum
Compilieren und Linken des Programms.
-
Unter Solaris müssen Client und Server mit folgenden
Systembibliotheken gebunden werden: "-lrpcsvc -lnsl"
-
Starten Sie den Server-Prozeß. Testen Sie das Client-Programm.
-
Vergessen Sie nach dem Testen nicht, den Server-Prozeß
mit "kill prozeß-id" zu beenden.
Hinweise:
-
Die Prozeß-ID des Servers finden Sie mit dem Programm
/usr/ucb/ps heraus. Achtung: Wenn Sie
/usr/ucb/ps ohne
Argumente starten, wird der Server nicht angezeigt, da
er nicht mehr an das aktuelle Terminal gebunden ist.
Sie müssen also ps mit erweiternden Optionen
aufrufen, um den Server-Prozeß zu finden (siehe
Online-Manual).
-
(Unter Solaris gibt es zwei Versionen von ps
-- eine SysV- und eine BSD-Variante. Ich empfehle die
BSD-Variante um
sicherzustellen, daß diese verwendet wird, empfielt es
sich, statt nur "ps" den vollständigen
Pfadnamen "/usr/ucb/ps" anzugeben.)
Eine vollständige Lösung besteht aus den (funktionstüchtigen)
Quelldateien für RPC-Spezifikation, Server-Prozedur und Clientprogramm
sowie einem Makefile, welches Regeln für das Bauen (Generieren
der Stubs, Übersetzen der Quelldateien, Linken) und Testen
(make test) Ihrer Lösung enthält.
Material
- Online-Ressourcen:
-
- Manual-Seiten der Programme
|