Sockets: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→listen) |
|||
| (5 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =Allgemein= | + | = Allgemein = |
| − | *Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient. | + | * Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient. |
| − | *Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen. | + | * Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen. |
| − | *Das andere Programm kann sich dabei auf demselben Computer (Interprozesskommunikation) befinden | + | * Das andere Programm kann sich dabei auf demselben Computer (Interprozesskommunikation) befinden |
| − | *Oder einem anderen, | + | * Oder auf einem anderen, über das Netzwerk erreichbaren Computer. |
| − | *Die Kommunikation über Sockets erfolgt in der Regel bidirektional | + | * Die Kommunikation über Sockets erfolgt in der Regel bidirektional. |
| − | * | + | * Über ein Socket können Daten sowohl empfangen als auch gesendet werden. |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | = | + | = Funktionsprinzip = |
| − | * | + | * Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der Anwendungssoftware. |
| − | + | * Ein Computerprogramm fordert einen Socket vom Betriebssystem an. | |
| − | *Ein | + | * Das Betriebssystem verwaltet alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen. |
| − | |||
| − | |||
| − | * | ||
| − | |||
| − | ;Unix spezifisch | + | = Internet-Sockets = |
| − | *[[UNIX Sockets]] | + | * Internet-Sockets ermöglichen die Kommunikation über bestimmte Netzwerkprotokolle. |
| + | * Man unterscheidet zwischen Stream-Sockets und Datagram-Sockets. | ||
| + | * Stream-Sockets kommunizieren über einen kontinuierlichen Datenstrom. | ||
| + | * Datagram-Sockets über einzelne, in sich geschlossene Nachrichten. | ||
| + | * In der Netzwerkkommunikation verwenden Stream-Sockets meist TCP. | ||
| + | * Datagram-Sockets üblicherweise UDP. | ||
| + | * Ein Socket ist die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer). | ||
| + | * Jedem Socket ist auch die eigene Adressinformation (lokale IP-Adresse und Portnummer) zugeordnet. | ||
| + | |||
| + | = Server = | ||
| + | * Ein Server wartet auf Anfragen auf einer oder mehreren Adressen. | ||
| + | * Wenn der Server eine Anfrage von einem Client erhält, wird die Verbindung geklont, sodass der Server weitere Anfragen bedienen kann. | ||
| + | * Unter Unix heißt diese Vorgehensweise [[Prozesse Eltern und Kinder|Forking]]. | ||
| + | * Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen. | ||
| + | * Der geklonte Prozess wird nur für die Kommunikation mit diesem einen Client verwendet. | ||
| + | * Er bleibt bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird. | ||
| + | |||
| + | = Status = | ||
| + | Es gibt zwei verschiedene Zustände: | ||
| + | |||
| + | == listening == | ||
| + | * Ein Server, der auf eingehende Verbindungen wartet. | ||
| + | * Er ist noch nicht verbunden. | ||
| + | * Dieser Socket stellt nur die grundsätzliche Möglichkeit einer Verbindung bereit. | ||
| + | |||
| + | == connected == | ||
| + | * Eine konkrete Instanz einer Verbindungsanfrage. | ||
| + | * Der Server-Prozess wurde geforkt. | ||
| + | * Ein konkreter Client wird bedient. | ||
| + | |||
| + | = Es gibt drei Arten von Sockets = | ||
| + | ; Allgemein | ||
| + | * [[TCP Sockets]] | ||
| + | * [[UDP Sockets]] | ||
| + | |||
| + | ; Unix-spezifisch | ||
| + | * [[UNIX Sockets]] | ||
Aktuelle Version vom 4. November 2025, 20:11 Uhr
Allgemein
- Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient.
- Ein Programm verwendet Sockets, um Daten mit anderen Programmen auszutauschen.
- Das andere Programm kann sich dabei auf demselben Computer (Interprozesskommunikation) befinden
- Oder auf einem anderen, über das Netzwerk erreichbaren Computer.
- Die Kommunikation über Sockets erfolgt in der Regel bidirektional.
- Über ein Socket können Daten sowohl empfangen als auch gesendet werden.
Funktionsprinzip
- Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der Anwendungssoftware.
- Ein Computerprogramm fordert einen Socket vom Betriebssystem an.
- Das Betriebssystem verwaltet alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen.
Internet-Sockets
- Internet-Sockets ermöglichen die Kommunikation über bestimmte Netzwerkprotokolle.
- Man unterscheidet zwischen Stream-Sockets und Datagram-Sockets.
- Stream-Sockets kommunizieren über einen kontinuierlichen Datenstrom.
- Datagram-Sockets über einzelne, in sich geschlossene Nachrichten.
- In der Netzwerkkommunikation verwenden Stream-Sockets meist TCP.
- Datagram-Sockets üblicherweise UDP.
- Ein Socket ist die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).
- Jedem Socket ist auch die eigene Adressinformation (lokale IP-Adresse und Portnummer) zugeordnet.
Server
- Ein Server wartet auf Anfragen auf einer oder mehreren Adressen.
- Wenn der Server eine Anfrage von einem Client erhält, wird die Verbindung geklont, sodass der Server weitere Anfragen bedienen kann.
- Unter Unix heißt diese Vorgehensweise Forking.
- Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen.
- Der geklonte Prozess wird nur für die Kommunikation mit diesem einen Client verwendet.
- Er bleibt bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.
Status
Es gibt zwei verschiedene Zustände:
listening
- Ein Server, der auf eingehende Verbindungen wartet.
- Er ist noch nicht verbunden.
- Dieser Socket stellt nur die grundsätzliche Möglichkeit einer Verbindung bereit.
connected
- Eine konkrete Instanz einer Verbindungsanfrage.
- Der Server-Prozess wurde geforkt.
- Ein konkreter Client wird bedient.
Es gibt drei Arten von Sockets
- Allgemein
- Unix-spezifisch