Skip to main content

Socket-Programmierung für Computer-Netzwerke - Zusammenfassung

2017 Mercedes Benz C 220 d T-Modell (S205) - Fahrbericht, Probefahrt,Test, Review, Kaufberatung (Juni 2025)

2017 Mercedes Benz C 220 d T-Modell (S205) - Fahrbericht, Probefahrt,Test, Review, Kaufberatung (Juni 2025)
Anonim

Eine Steckdose ist eine der grundlegendsten Technologien für die Programmierung von Computernetzwerken. Mithilfe von Sockets können Netzwerksoftwareanwendungen mithilfe von in Netzwerkhardware und Betriebssystemen integrierten Standardmechanismen kommunizieren.

Obwohl es sich wie ein weiteres Merkmal der Internetsoftware-Entwicklung anhört, gab es die Socket-Technologie schon lange vor dem Web. Viele der heute gängigsten Netzwerk-Softwareanwendungen sind auf Steckdosen angewiesen.

Was können Steckdosen für Ihr Netzwerk tun?

Ein Socket stellt eine einzelne Verbindung zwischen genau zwei Softwareteilen dar (einer sogenannten Punkt zu Punkt Verbindung). Mehr als zwei Softwareteile können über mehrere Sockets mit Client / Server oder verteilten Systemen kommunizieren. Beispielsweise können viele Webbrowser gleichzeitig über eine Gruppe von Sockets, die auf dem Server erstellt werden, mit einem einzelnen Webserver kommunizieren.

Socket-basierte Software wird normalerweise auf zwei separaten Computern im Netzwerk ausgeführt. Sockets können jedoch auch zur lokalen Kommunikation verwendet werden ( Interprozess ) auf einem einzigen Computer. Steckdosen sind bidirektional Dies bedeutet, dass beide Seiten der Verbindung sowohl Daten senden als auch empfangen können. Manchmal wird die eine Anwendung, die die Kommunikation einleitet, als "Client" und die andere Anwendung als "Server" bezeichnet. Diese Terminologie führt jedoch zu Verwirrung im Peer-to-Peer-Netzwerk und sollte generell vermieden werden.

Socket-APIs und -Bibliotheken

Im Internet gibt es mehrere Bibliotheken, die standardisierte Anwendungsprogrammierschnittstellen (APIs) implementieren. Das erste Mainstream-Paket - die Berkeley Socket Library - ist auf UNIX-Systemen noch weit verbreitet. Eine weitere sehr verbreitete API ist die Windows Sockets-Bibliothek (WinSock) für Microsoft-Betriebssysteme. Im Vergleich zu anderen Computertechnologien sind Socket-APIs recht ausgereift: WinSock wird seit 1993 verwendet, Berkeley-Sockets seit 1982.

Die Socket-APIs sind relativ klein und einfach. Viele der Funktionen ähneln denen, die in Dateieingabe- / ausgaberoutinen wie z lesen(), schreiben(), und schließen(). Die tatsächlich zu verwendenden Funktionsaufrufe hängen von der gewählten Programmiersprache und der Socket-Bibliothek ab.

Socket-Schnittstellentypen

Socket-Schnittstellen können in drei Kategorien unterteilt werden:

  • Strom Sockets, der häufigste Typ, erfordert, dass die beiden kommunizierenden Parteien zuerst eine Socket-Verbindung aufbauen. Danach werden alle Daten, die diese Verbindung passieren, in derselben Reihenfolge eintreffen, in der sie gesendet wurden (sogenanntes verbindungsorientiertes Programmiermodell) .
  • Datagramm Steckdosen bieten "verbindungslose" Semantik. Bei Datagrammen sind Verbindungen implizit und nicht wie bei Streams explizit. Jeder Teilnehmer sendet einfach nach Bedarf Datagramme und wartet darauf, dass der andere antwortet. Nachrichten können während der Übertragung verloren gehen oder empfangen werden, aber es liegt in der Verantwortung der Anwendung und nicht in den Sockets, um diese Probleme zu lösen. Durch die Implementierung von Datagramm-Sockets können einige Anwendungen im Vergleich zur Verwendung von Stream-Sockets eine Leistungssteigerung und zusätzliche Flexibilität erhalten, was in einigen Situationen deren Verwendung rechtfertigt.
  • Die dritte Steckdose - die roh socket - umgeht die integrierte Unterstützung der Bibliothek für Standardprotokolle wie TCP und UDP. Raw-Sockets werden für die Entwicklung von Low-Level-Protokollen verwendet.

Socket-Unterstützung in Netzwerkprotokollen

Moderne Netzwerk-Sockets werden normalerweise in Verbindung mit den Internetprotokollen IP, TCP und UDP verwendet. Bibliotheken, die Sockets für das Internetprotokoll implementieren, verwenden TCP für Streams, UDP für Datagramme und IP selbst für Raw-Sockets.

Für die Kommunikation über das Internet verwenden IP-Socket-Bibliotheken die IP-Adresse, um bestimmte Computer zu identifizieren. Viele Teile des Internets arbeiten mit Benennungsdiensten, so dass Benutzer und Socket-Programmierer mit Computern nach Namen arbeiten können ( z.B. , "thiscomputer.wireless.about.com") statt nach Adresse ( z.B. 208,185,127,40). Stream- und Datagramm-Sockets verwenden auch IP-Portnummern, um mehrere Anwendungen voneinander zu unterscheiden. Beispielsweise wissen Webbrowser im Internet, Port 80 als Standard für die Socketkommunikation mit Webservern zu verwenden.