SlideShare ist ein Scribd-Unternehmen logo
Vortrag in Netztechnik I
Andreas Roth
Sockets – Theorie und Implementierung
 Ein Software-Modul, das den Austausch
von Daten zwischen Applikationen und
Rechnern in einem Netzwerk ermöglicht.
 Austausch von Daten zwischen Prozessen auf
verschiedenen Rechnern.
 Austausch von Daten zwischen Prozessen auf
demselben Rechner
(Interprozesskommunikation).
3
 Sockets können als Endepunkte einer
Netzwerkverbindung verstanden werden.
 Die Kommunikation über Sockets ist
bidirektional (es können also sowohl Daten
empfangen als auch gesendet werden).
 Sockets bilden eine plattformunabhängige,
standardisierte Schnittstelle (Implementierung
des Netzwerkprotokoll Applikation).
4
5
 Winsocks (Windows Socket Library):
Socket API für die Windows-Systeme.
 BSD-Sockets (Berkeley Sockets):
Socket API für Unix und unixartige Systeme .
 Unix Domain Sockets:
Socket API für Interprozesskommunikation.
6
 Stream Sockets:
◦ Kommunikation über Zeichen-Datenstrom.
◦ Verwendung von TCP-Protokoll.
 Datagram Sockets:
◦ Kommunikation über einzelne Nachrichten/Pakete.
◦ Verwendung von UDP-Protokoll.
 Raw Sockets:
◦ Spezielle Sockets, welche die Erstellung von eigenen
TCP- und UDP-Header zulassen.
7
 Stream Sockets:
◦ Zuverlässige, verbindungsorientierte
Kommunikation (Datenübertragung, Remote).
 Datagram Sockets:
◦ Verbindungslose Kommunikation (Elektronische
„Wurfsendungen“).
 Raw Sockets:
◦ Netzwerknahe Applikationen wie Router.
8
Sockets – Theorie und Implementierung
Server
„hört“
auf Host
und Port
Client
verbindet
sich gegen
den Server
Server und Client
senden/empfangen
Daten Streams
Server und Client
implementieren ein
Protocol.
10
 Prinzip: Open-Read-Write-Close
 Clientseitig:
◦ Client Socket erstellen.
◦ Client Socket an Server-Adresse binden.
◦ Senden/ Empfangen von Daten.
◦ Socket des Clients herunterfahren.
◦ Verbindung trennen/ Socket schließen.
11
 Serverseitig:
◦ Server Socket erstellen.
◦ Server Socket an einen Port binden.
◦ Auf Anfragen von Clients warten.
◦ Anfrage akzeptieren/ Socket-Paar erstellen.
◦ Bearbeiten der Anfragen des Clients.
◦ Socket des Clients schließen.
12
Sockets – Theorie und Implementierung
import java.net.ServerSocket;
import java.net.Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class MeinServer {
public static void main(String[] args) throws Exception {
// Server Socket wird erstellt und an einen Port gebunden
ServerSocket serverSocket = new ServerSocket(port);
14
// Auf (mehrfache) Anfragen von Clients warten...
while (true) {
// Anfrage akzeptieren/zulassen und NEUES Socket-Paar erstellen
Socket clientSocket = serverSocket.accept();
DataOutputStream outputStream = new DataOutputStream
(clientSocket.getOutputStream());
DataInputStream inputStream = new DataInputStream
(clientSocket.getInputStream());
// Implementierung des Protokolls und Verarbeitung der Daten…
// Client Socket schließen
clientSocket.close();
15
import java.net.Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class MeinClient {
public static void main(String[] args) throws Exception {
// Client Socket wird erzeugt und an Host und Port gebunden
Socket clientSocket = new Socket(host, port);
// Analog zum Server…
16
17
 Demo…
 http://de.wikipedia.org/wiki/Socket_%28Software%29
[Stand: 14.10.2012].
 http://de.wikipedia.org/wiki/Interprozesskommunikation
[Stand: 14.10.2012].
 http://docs.oracle.com/javase/tutorial/networking/sockets/
index.html [Stand: 14.10.2012].
 Kersken, Sascha (2009): IT-Handbuch für Fachinformatiker –
Der Ausbildungsbegleiter, 4. aktualisierte und erweiterte
Ausgabe, Bonn 2009.
 Menze, Michael (2012): Programmieren 2, Studiengang
Angewandte Informatik an der DHBW Stuttgart (B.Sc.)
2. Semester, Stuttgart 2011.
18
Fragen?
 Ableitung von „listening“ Server zu einem
„connected“ Server-Socket (Wichtig: Es wird
ein NEUER Socket erstellt!).
 Ableitung von „requesting“ Client zu einem
„accepted“ Client-Socket.
 Socket als Endpunkt einer Netzwerkverbindung
Endpunkt = Kombination aus IP und Port-Nr.
20
 Standardisierung der Socket-Programmierung
durch die University of California (Berkeley).
 Verbindung zwischen Client- und Server-
Socket auf bestimmten Port wird auch
„Rendezvous“ genannt.
21
 Alternativen zu Sockets:
◦ Pipes: gepufferter uni- oder bidirektionaler
Datenstrom nach dem FIFO-Prinzip.
◦ Shared Memory: Hier nutzen zwei oder mehrere
Prozesse einen bestimmten Teil des
Hintergrundspeichers (RAM) gemeinsam.
22
 Wildcard-Adresse: ein oder mehrere Teile der
Adresse nicht spezifisch ist (z.B. Port-
Nummer mit spezifisch ungültigen IP).
 Ports: 2 Byte/16 Bit, also 2^16 (0-65535)
◦ System Ports: 0-1023
◦ User Ports: 1024-49151
◦ Dynamic Ports: 49152-65535
23

Weitere ähnliche Inhalte

PPT
Anbindung von Silverlight an RESTful Web Services
PDF
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
PDF
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
PDF
CS108 Bootcamp Eyeballs
PDF
20141113174543
PDF
Bewussterhandeln
DOCX
Gualteroz
PDF
Publicidad lunar fotografia final
Anbindung von Silverlight an RESTful Web Services
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
CS108 Bootcamp Eyeballs
20141113174543
Bewussterhandeln
Gualteroz
Publicidad lunar fotografia final

Andere mochten auch (20)

DOC
PPT
Sortierverfahren und zufallszahlen
PPTX
Mi experiencia laboral
PDF
Enfermedades tecnológicas
PDF
Bisatel comme marche la voip
PDF
Mejores Empleadores 2015
DOCX
Cynthia compu
PPTX
Vom Return on Invest zum Return on Expectations
PDF
Tilaaja tuottaja-seminaari Kari Hakari
DOCX
Le parrainage: pour le meilleur et pour le pire
PPTX
Municipale v8 finale 050314pptx
PDF
Comprar coche
PPTX
Trabajo final equipo#4
PPTX
Teillé bourg moderne et numérique
PPTX
Nohelia armas
PDF
Presentation of the Inventaire des contenus clés aux niveaux du CECR
PDF
Vie à lasne de septembre 2014 partie 2 de 2 - site
PPS
Perderesganar
PDF
Entrepreunariat - Financement - Aides
PPTX
Mantenimiento de computador
Sortierverfahren und zufallszahlen
Mi experiencia laboral
Enfermedades tecnológicas
Bisatel comme marche la voip
Mejores Empleadores 2015
Cynthia compu
Vom Return on Invest zum Return on Expectations
Tilaaja tuottaja-seminaari Kari Hakari
Le parrainage: pour le meilleur et pour le pire
Municipale v8 finale 050314pptx
Comprar coche
Trabajo final equipo#4
Teillé bourg moderne et numérique
Nohelia armas
Presentation of the Inventaire des contenus clés aux niveaux du CECR
Vie à lasne de septembre 2014 partie 2 de 2 - site
Perderesganar
Entrepreunariat - Financement - Aides
Mantenimiento de computador
Anzeige

Ähnlich wie Sockets – Theorie und Implementierung (20)

PDF
Sockets – Theorie und Implementierung
PPT
XML-Socket-Server zur Kommunikation mit Flash
PPTX
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
PPTX
Avoid Network-Issues and Polling
PDF
Grundlagen der Kommunikation - von Binär zum OSI Modell
PDF
Transportsicherheit - SSL und HTTPS
PDF
Citrix Day 2013: Citirx Networking
PDF
HTML5 und node.js Grundlagen
PDF
Drahtwanderung: Wir machen den NeXTen Schritt
PDF
Making the internet faster HTTP/3 und QUIC
PPTX
Apache camel
PDF
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
PDF
Prometheus Monitoring
PPT
Übersicht Skriptsprachen
PDF
Docker Workbench
PPTX
Vorlesung SOA - DIS AG.pptx
PDF
Oracle Datenbank-Architektur
ODP
Bidirektionale Verbindungen für Webanwendungen
PDF
Dataservices - Data Processing mit Microservices
PDF
Connext de
Sockets – Theorie und Implementierung
XML-Socket-Server zur Kommunikation mit Flash
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Avoid Network-Issues and Polling
Grundlagen der Kommunikation - von Binär zum OSI Modell
Transportsicherheit - SSL und HTTPS
Citrix Day 2013: Citirx Networking
HTML5 und node.js Grundlagen
Drahtwanderung: Wir machen den NeXTen Schritt
Making the internet faster HTTP/3 und QUIC
Apache camel
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Prometheus Monitoring
Übersicht Skriptsprachen
Docker Workbench
Vorlesung SOA - DIS AG.pptx
Oracle Datenbank-Architektur
Bidirektionale Verbindungen für Webanwendungen
Dataservices - Data Processing mit Microservices
Connext de
Anzeige

Sockets – Theorie und Implementierung

  • 1. Vortrag in Netztechnik I Andreas Roth
  • 3.  Ein Software-Modul, das den Austausch von Daten zwischen Applikationen und Rechnern in einem Netzwerk ermöglicht.  Austausch von Daten zwischen Prozessen auf verschiedenen Rechnern.  Austausch von Daten zwischen Prozessen auf demselben Rechner (Interprozesskommunikation). 3
  • 4.  Sockets können als Endepunkte einer Netzwerkverbindung verstanden werden.  Die Kommunikation über Sockets ist bidirektional (es können also sowohl Daten empfangen als auch gesendet werden).  Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle (Implementierung des Netzwerkprotokoll Applikation). 4
  • 5. 5
  • 6.  Winsocks (Windows Socket Library): Socket API für die Windows-Systeme.  BSD-Sockets (Berkeley Sockets): Socket API für Unix und unixartige Systeme .  Unix Domain Sockets: Socket API für Interprozesskommunikation. 6
  • 7.  Stream Sockets: ◦ Kommunikation über Zeichen-Datenstrom. ◦ Verwendung von TCP-Protokoll.  Datagram Sockets: ◦ Kommunikation über einzelne Nachrichten/Pakete. ◦ Verwendung von UDP-Protokoll.  Raw Sockets: ◦ Spezielle Sockets, welche die Erstellung von eigenen TCP- und UDP-Header zulassen. 7
  • 8.  Stream Sockets: ◦ Zuverlässige, verbindungsorientierte Kommunikation (Datenübertragung, Remote).  Datagram Sockets: ◦ Verbindungslose Kommunikation (Elektronische „Wurfsendungen“).  Raw Sockets: ◦ Netzwerknahe Applikationen wie Router. 8
  • 10. Server „hört“ auf Host und Port Client verbindet sich gegen den Server Server und Client senden/empfangen Daten Streams Server und Client implementieren ein Protocol. 10
  • 11.  Prinzip: Open-Read-Write-Close  Clientseitig: ◦ Client Socket erstellen. ◦ Client Socket an Server-Adresse binden. ◦ Senden/ Empfangen von Daten. ◦ Socket des Clients herunterfahren. ◦ Verbindung trennen/ Socket schließen. 11
  • 12.  Serverseitig: ◦ Server Socket erstellen. ◦ Server Socket an einen Port binden. ◦ Auf Anfragen von Clients warten. ◦ Anfrage akzeptieren/ Socket-Paar erstellen. ◦ Bearbeiten der Anfragen des Clients. ◦ Socket des Clients schließen. 12
  • 14. import java.net.ServerSocket; import java.net.Socket; import java.io.DataInputStream; import java.io.DataOutputStream; public class MeinServer { public static void main(String[] args) throws Exception { // Server Socket wird erstellt und an einen Port gebunden ServerSocket serverSocket = new ServerSocket(port); 14
  • 15. // Auf (mehrfache) Anfragen von Clients warten... while (true) { // Anfrage akzeptieren/zulassen und NEUES Socket-Paar erstellen Socket clientSocket = serverSocket.accept(); DataOutputStream outputStream = new DataOutputStream (clientSocket.getOutputStream()); DataInputStream inputStream = new DataInputStream (clientSocket.getInputStream()); // Implementierung des Protokolls und Verarbeitung der Daten… // Client Socket schließen clientSocket.close(); 15
  • 16. import java.net.Socket; import java.io.DataInputStream; import java.io.DataOutputStream; public class MeinClient { public static void main(String[] args) throws Exception { // Client Socket wird erzeugt und an Host und Port gebunden Socket clientSocket = new Socket(host, port); // Analog zum Server… 16
  • 18.  http://de.wikipedia.org/wiki/Socket_%28Software%29 [Stand: 14.10.2012].  http://de.wikipedia.org/wiki/Interprozesskommunikation [Stand: 14.10.2012].  http://docs.oracle.com/javase/tutorial/networking/sockets/ index.html [Stand: 14.10.2012].  Kersken, Sascha (2009): IT-Handbuch für Fachinformatiker – Der Ausbildungsbegleiter, 4. aktualisierte und erweiterte Ausgabe, Bonn 2009.  Menze, Michael (2012): Programmieren 2, Studiengang Angewandte Informatik an der DHBW Stuttgart (B.Sc.) 2. Semester, Stuttgart 2011. 18
  • 20.  Ableitung von „listening“ Server zu einem „connected“ Server-Socket (Wichtig: Es wird ein NEUER Socket erstellt!).  Ableitung von „requesting“ Client zu einem „accepted“ Client-Socket.  Socket als Endpunkt einer Netzwerkverbindung Endpunkt = Kombination aus IP und Port-Nr. 20
  • 21.  Standardisierung der Socket-Programmierung durch die University of California (Berkeley).  Verbindung zwischen Client- und Server- Socket auf bestimmten Port wird auch „Rendezvous“ genannt. 21
  • 22.  Alternativen zu Sockets: ◦ Pipes: gepufferter uni- oder bidirektionaler Datenstrom nach dem FIFO-Prinzip. ◦ Shared Memory: Hier nutzen zwei oder mehrere Prozesse einen bestimmten Teil des Hintergrundspeichers (RAM) gemeinsam. 22
  • 23.  Wildcard-Adresse: ein oder mehrere Teile der Adresse nicht spezifisch ist (z.B. Port- Nummer mit spezifisch ungültigen IP).  Ports: 2 Byte/16 Bit, also 2^16 (0-65535) ◦ System Ports: 0-1023 ◦ User Ports: 1024-49151 ◦ Dynamic Ports: 49152-65535 23