25.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. Bei dem Begriff »Client« ist dies recht ähnlich. Beides ist eigentlich falsch, denn sowohl der Server als auch der Client sind zwei 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 beispielsweise auch gern zur Kommunikation oder zum Austausch von Daten zwischen verschiedenen nicht verwandten Prozessen verwendet (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, die einen bestimmten Dienst oder auch Service anbietet. Der oder meistens die Clients sind ebenfalls ein Stückchen Software, das diesen Dienst bzw. Service verwendet. Das einfachste Beispiel ist der Webserver (wie beispielsweise der Apache einer ist). Der Webserver bietet häufig viele Dienste wie 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 ausgeführt wird (was größtenteils der Fall ist) und der Client auf einem MS-Windows-System läuft (was bei Webbrowsern auch wieder größtenteils der Fall ist). Wichtig ist, dass beide dieselbe Sprache sprechen (beispielsweise HTTP, Hypertext Transfer Protocol).
Für das Client/Server-Prinzip in der Netzwerkprogrammierung ist es wichtig, 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.
25.3.1 Loopback-Interface 

Da die meisten Leser das Client/Server-Beispiel auf dem lokalen Rechner testen werden, muss ich auch ein paar Worte zum Loopback-Interface sagen. 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 besteht einfach darin, dass manche Kommandos ihre Kommunikation auf dem Netzwerkprotokoll aufbauen. Somit würden ohne das Loopback-Interface die einen oder anderen Kommandos auf dem lokalen Rechner gar nicht funktionieren – wozu unter anderem auch Ihre Anwendungen zählen, sofern Sie diese lokal testen und verwenden wollen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.