Sockets: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „=Allgemein= *Ein Socket ist ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient. *Ein Programm verwendet Sockets, um Daten mit…“) |
|||
| Zeile 19: | Zeile 19: | ||
*Ein Socket ist normalerweise die Verbindungsstelle zu einem bestimmten entfernten Programm, repräsentiert durch dessen Adressinformation (z. B. IP-Adresse und Portnummer). | *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. | *Dem Socket selbst ist natürlich auch die eigene Adressinformation zugeordnet. | ||
| − | + | =Server= | |
| − | + | *Ein Server wartet auf Anfragen auf einer oder mehrere Adresse warten | |
| − | Ein Server | + | *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, | |
| − | Wenn der Server eine Anfrage von einem Client erhält, wird | + | *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 | |
| − | + | ==listen== | |
| − | + | *Ein Server der auf eingehende Verbindungen wartet. | |
| − | + | *Er ist konkret nicht verbunden. | |
| − | + | *Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit | |
| − | + | ==connectet== | |
| − | + | *Eine konkrete Instanz einer Verbindungsanfrage | |
| − | + | *Der Server Prozesss wurde geforkt | |
| − | + | *Ein konkreter Client wird bedient. | |
| − | + | =Es gibt 3 Arten von Sockets | |
| − | Verbindung | ||
| − | |||
| − | |||
| − | Server | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
*TCP Sockets | *TCP Sockets | ||
*UDP Sockets | *UDP Sockets | ||
*Unix Sockets | *Unix Sockets | ||
Version vom 18. September 2022, 12:34 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
listen
- Ein Server der auf eingehende Verbindungen wartet.
- Er ist konkret nicht verbunden.
- Dieser stellt nur die grundsätzlich Möglichkeit einer Verbindung bereit
connectet
- Eine konkrete Instanz einer Verbindungsanfrage
- Der Server Prozesss wurde geforkt
- Ein konkreter Client wird bedient.
=Es gibt 3 Arten von Sockets
- TCP Sockets
- UDP Sockets
- Unix Sockets