28.3 Client-/Server-Prinzip
 
Beide Begriffe werden von der Außenwelt gerne missverstanden. Häufig stellt sich der Laie unter einem Server eine Hardware (einfach einen kompletten PC) vor. Unter dem Begriff »Client« ist dies recht ähnlich. Wobei beides eigentlich falsch ist, denn sowohl der Server als auch der Client sind ein Stückchen Software, die miteinander kommunizieren können. Diese Kommunikation muss dabei nicht zwangsläufig auf verschiedenen PCs stattfinden, auch wenn dies (in der Netzwerkprogrammierung) meistens der Fall ist. Es ist auch möglich, dass sich beides auf demselben Rechner befindet. Das Client-/Server-Prinzip wird bspw. auch gerne zur Kommunikation oder zum Austausch von Daten zwischen verschiedenen nicht-verwandten Prozessen verwenden (Stichwort: Interprozesskommunikation). Natürlich ist dies auch mit den Sockets (UNIX-Domain-Sockets) möglich – doch dies ist hier nicht das Thema.
Der Server ist einfach eine Software, welche einen bestimmten Dienst oder auch Service anbietet. Der oder meistens die Clients sind ebenfalls ein Stückchen Software, welches diesen Dienst bzw. Service verwendet. Einfachstes Beispiel ist der Webserver (wie bspw. der Apache einer ist). Der Webserver bietet häufig viele Dienste wie u.a. FTP oder SSH an – aber der am meisten verwendete Dienst dürfte wohl das Anbieten von Webseiten (HTTP) sein. Und der Webbrowser ist dabei der Client, der diesen angebotenen Service vom Webserver verwendet. Damit können Sie die Webseiten auf Ihrem PC ansehen. Dabei ist es im Grunde egal, ob der Server auf einem Linux/UNIX-System (was größtenteils der Fall ist) und der Client auf einem MS-Windows-System (was bei Webbrowsern auch wieder größtenteils der Fall ist) ausgeführt wird. Wichtig ist, dass beide dieselbe Sprache (bspw. in HTTP = Hypertext Transfer Protocol) sprechen.
Bedeutend, für das Client-/Server-Prinzip in der Netzwerkprogrammierung ist, dass eine Netzwerkverbindung zwischen mindestens zwei Endpunkten bestehen muss. Steht die Verbindung, kann die Kommunikation über das Netzwerk mit den verschiedenen Protokollen (TCP/IP oder UDP/IP) beginnen.
28.3.1 Loopback-Interface
 
Da die meisten Leser unter Ihnen das Client-/Server-Beispiel auf dem lokalen Rechner testen werden, müssen auch ein paar Worte zum Loopback-Interface gemacht werden. Mit dem Loopback-Interface (127.0.0.1 oder auch localhost) können Sie die Netzwerkprotokolle auf dem lokalen Rechner zur Kommunikation verwenden, auch wenn kein Netzwerk vorhanden ist. Der Sinn des Loopback-Interface liegt einfach darin, dass manche Kommandos ihre Kommunikation auf dem Netzwerkprotokoll aufbauen. Somit würden, ohne dem Loopback-Interface, die einen oder anderen Kommandos auf dem lokalen Rechner gar nicht funktionieren – wozu u.a. auch Ihre Anwendungen zählen, sofern Sie diese Lokal testen und verwenden wollen.
 Hier klicken, um das Bild zu Vergrößern
|