Netzwerkprogrammierung mit Sockets

Eine elementare Schnittstelle zur Programmierung von Netzwerkanwendungen bieten die so genannten Sockets. Als API stellen die Sockets Funktionen zum Aufbau von Verbindungen sowie zur Kommunikation zwischen Applikationen bereit.

Sockets (Englisch für Steckdosen) kapseln die Details der Netzwerkkommunikation. Der Programmierer kann sich so auf die Realisierung der Anwendung konzentrieren. Im Idealfall funktionieren die Anwendungen dadurch unabhängig von Programmiersprache, Betriebssystem und Netzwerk-Interface.

Das Socket API wird von allen gängigen Betriebssystemen unterstützt. Sockets setzen auf die Protokolle einer Transportschicht wie TCP oder UDP auf. Aus Sicht der Anwendung ist ein Socket ein Zugang zum Netzwerk. Im Folgenden diskutieren wir die Programmierung am Beispiel der Programmiersprache C. Die Verwendung in anderen Programmiersprachen erfolgt ähnlich. Am Ende dieses Kapitels zeigen wir eine Implementierung in der Sprache Perl.

Das Socket API stellt zwei Verfahren zur Verfügung: verbindungsorientierte und verbindungslose Kommunikation. Im ersten Fall müssen die beiden beteiligten Rechner zunächst eine Verbindung aufbauen, bevor sie Daten austauschen können. In beiden Fällen jedoch übernimmt einer der beiden Rechner - der Server - die Aufgabe, zunächst die Netzressource aufzubauen. Dann wartet er auf Verbindungswünsche des anderen Rechners - des Clients. Ein Server kann im Allgemeinen mehrere Clients bedienen. Sockets eignen sich nicht nur für die Kommunikation zwischen Rechnern. Sie können auch die Kommunikation zwischen mehreren Applikationen auf einem Rechner erledigen.

Diesen Beitrag finden Sie auch in unserem Kompendium „tecCHANNEL-Compact Netzwerk-Know-How“, das Sie versandkostenfrei in unserem Online-Shop bestellen können. Den Sourcecode der folgenden Beispiele zur direkten Übernahme in Ihre Programmierumgebung erhalten Sie, wenn Sie unter den Listings den Link „Textansicht“ anwählen. Den kompletten Sourcecode des Compacts finden Sie hier zum Download.