Sockets: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→listen) |
|||
| Zeile 33: | Zeile 33: | ||
*Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit | *Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit | ||
| − | == | + | ==connected== |
*Eine konkrete Instanz einer Verbindungsanfrage | *Eine konkrete Instanz einer Verbindungsanfrage | ||
*Der Server Prozesss wurde geforkt | *Der Server Prozesss wurde geforkt | ||
*Ein konkreter Client wird bedient. | *Ein konkreter Client wird bedient. | ||
| + | |||
=Es gibt 3 Arten von Sockets= | =Es gibt 3 Arten von Sockets= | ||
;Allgemein | ;Allgemein | ||
Version vom 15. Februar 2023, 07:38 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 einem anderen, via Netzwerk erreichbaren Computer befinden.
- Die Kommunikation über Sockets erfolgt in der Regel bidirektional,
- Daten können über das Socket können Daten sowohl empfangen als auch gesendet werden.
Allgemeines Funktionsprinzip
- Sockets bilden eine plattformunabhängige standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der eigentlichen Anwendungssoftware.
- Ein Computerprogramm fordert einen Socket vom Betriebssystem an.
- Das Betriebssystem hat die Aufgabe, alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen zu verwalten.
Internet-Sockets
- Internet-Sockets ermöglichen die Kommunikation mittels bestimmter Kommunikationsprotokolle.
- Generell kann man unterscheiden zwischen Stream Sockets und Datagram Sockets
- Stream Sockets kommunizieren über einen Zeichen-Datenstrom
- Datagramm Sockets über einzelne Nachrichten.
- In der Netzwerkkommunikation verwenden Stream Sockets meist TCP
- Datagramm Sockets üblicherweise UDP.
- Ein Socket ist normalerweise die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer).
- Dem Socket selbst ist natürlich auch die eigene Adressinformation zugeordnet.
Server
- Ein Server wartet auf Anfragen auf einer oder mehrere Adresse warten
- Wenn der Server eine Anfrage von einem Client erhält, wird praktisch die Verbinung geklont so das der Server weitere Anfragen bedienen kann.
- Der ursprüngliche Server-Socket bleibt erhalten und wartet weiterhin auf neue Verbindungen,
- Der geclonte Prozesse wird nur für die Kommunikation mit diesem einen Client verwendet
- Er bleibt solange bestehen, bis die Verbindung zum Client von einer der beiden Seiten beendet wird.
- Unter Unix heisst diese Vorgehensweise Forking
Status
Es gibt nun 2 verschiende Zustände
listening
- Ein Server der auf eingehende Verbindungen wartet.
- Er ist konkret nicht verbunden.
- Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit
connected
- Eine konkrete Instanz einer Verbindungsanfrage
- Der Server Prozesss wurde geforkt
- Ein konkreter Client wird bedient.
Es gibt 3 Arten von Sockets
- Allgemein
- Unix spezifisch