<-- Studium  

Netzprogrammierung

Zu bearbeiten waren in dieser Veranstaltung 4 Aufgaben, 2 in JAVA und 2 in C:

Replicated HashMap
Cluster Management
Route-Redirect Poisoning
RPC



Replicated HashMap:

Aufgabe
Loesung: Main.java HMap.java Receive.java Sockenschuss.java
 
Prof. Knuspermagier referiert Foto eines Metalltafel-Codeanschriebs des Singletons
Zum Glueck zeigte mit der Knuspermagier dieses wunderbare design pattern welches es ermoeglicht global erreichbare Objekte in Java zu erzeugen. Somit konnte ich eines der fuer mich schlimmsten "Features" von Java eliminieren und diese Uebung sinnvoll und ohne verrueckt zu werden loesen.

Cluster Management:

Aufgabe
Verwendete Konzepte: Threads, Objektserialisierung, Sockets, "LinkedList", ...
Loesung: MainGateway.java MainClient.java MainWorker.java List.java ServerClient.java ServerWprker.java SumUpJob.java WaitForClient.java WaitForWorker.java

Route-Redirect Poisoning:

Aufgabe
Loesung
"Hackerseite" zu diesem Thema die hilfreicher als alle Scripte und Buecher zusammen ist

RPC:

Aufgabe   StandaloneSumUp

Allgemeine Portmapper Sachen:
-----------------------------

1. Portmapper starten:
/etc/rc.d/portmap start

2. Server starten und kucken ob er laeuft:
 rpcinfo -p
   Program Vers Proto   Port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
 805306368    1   udp  55622
 805306368    1   tcp  57531

3. Client starten

Wenn die Fehlermeldung:
   RPC: Program not registered
auftritt, muss portmap in der
   /etc/hosts.allow
erlaubt werden, z.B.:
   portmap : ALL



Grundgeruest fuer RPC Anwendungen erstellen:
--------------------------------------------

1. foo.x Datei erstellen (siehe Script oder Beispielprogs vom Reich)

2. Stubs/Sekeltons genrieren:
rpcgen -C foo.x

3. Beispiel Server und Client erzeugen:
rpcgen -Sc foo.x > client.c
rpcgen -Ss foo.x > server.c

4. Programmlogik hinzufuegen

5. Programm kompilieren:
gcc client.c foo_clnt.c foo_xdr.c -l nsl -o client
gcc server.c foo_svc.c foo_xdr.c -l rpcsvc -l nsl -o server
Loesung: sumUp.x sumUp_xdr.c client.c server.c sumUp_clnt.c sumUp.svc.c sumUp.h