SlideShare a Scribd company logo
1 of 23
Vortrag in Netztechnik I
Andreas Roth
 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
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
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

More Related Content

Viewers also liked

Sortierverfahren und zufallszahlen
Sortierverfahren und zufallszahlenSortierverfahren und zufallszahlen
Sortierverfahren und zufallszahlenCBeuster
 
Mi experiencia laboral
Mi experiencia laboralMi experiencia laboral
Mi experiencia laboralysabel cieza
 
Enfermedades tecnológicas
Enfermedades tecnológicas Enfermedades tecnológicas
Enfermedades tecnológicas kari131015
 
Bisatel comme marche la voip
Bisatel comme marche la voipBisatel comme marche la voip
Bisatel comme marche la voipBisatel
 
Vom Return on Invest zum Return on Expectations
Vom Return on Invest zum Return on ExpectationsVom Return on Invest zum Return on Expectations
Vom Return on Invest zum Return on Expectationsscil CH
 
Tilaaja tuottaja-seminaari Kari Hakari
Tilaaja tuottaja-seminaari Kari HakariTilaaja tuottaja-seminaari Kari Hakari
Tilaaja tuottaja-seminaari Kari HakariTilTu-seminaari
 
Le parrainage: pour le meilleur et pour le pire
Le parrainage: pour le meilleur et pour le pireLe parrainage: pour le meilleur et pour le pire
Le parrainage: pour le meilleur et pour le pireCabinet Me Hugues Langlais
 
Municipale v8 finale 050314pptx
Municipale v8 finale 050314pptxMunicipale v8 finale 050314pptx
Municipale v8 finale 050314pptxLydia Beatrix
 
Teillé bourg moderne et numérique
Teillé bourg moderne et numériqueTeillé bourg moderne et numérique
Teillé bourg moderne et numériqueLydia Beatrix
 
Nohelia armas
Nohelia armasNohelia armas
Nohelia armasnohearmas
 
Presentation of the Inventaire des contenus clés aux niveaux du CECR
Presentation of the Inventaire des contenus clés aux niveaux du CECR Presentation of the Inventaire des contenus clés aux niveaux du CECR
Presentation of the Inventaire des contenus clés aux niveaux du CECR eaquals
 
Vie à lasne de septembre 2014 partie 2 de 2 - site
Vie à lasne de septembre 2014   partie 2 de 2 - siteVie à lasne de septembre 2014   partie 2 de 2 - site
Vie à lasne de septembre 2014 partie 2 de 2 - sitecomlasne
 
Entrepreunariat - Financement - Aides
Entrepreunariat - Financement - AidesEntrepreunariat - Financement - Aides
Entrepreunariat - Financement - AidesArthur Dagard
 
Mantenimiento de computador
Mantenimiento de computadorMantenimiento de computador
Mantenimiento de computadorcarlo2323
 

Viewers also liked (20)

Dossier
DossierDossier
Dossier
 
Sortierverfahren und zufallszahlen
Sortierverfahren und zufallszahlenSortierverfahren und zufallszahlen
Sortierverfahren und zufallszahlen
 
Mi experiencia laboral
Mi experiencia laboralMi experiencia laboral
Mi experiencia laboral
 
Enfermedades tecnológicas
Enfermedades tecnológicas Enfermedades tecnológicas
Enfermedades tecnológicas
 
Bisatel comme marche la voip
Bisatel comme marche la voipBisatel comme marche la voip
Bisatel comme marche la voip
 
Mejores Empleadores 2015
Mejores Empleadores 2015Mejores Empleadores 2015
Mejores Empleadores 2015
 
Cynthia compu
Cynthia compuCynthia compu
Cynthia compu
 
Vom Return on Invest zum Return on Expectations
Vom Return on Invest zum Return on ExpectationsVom Return on Invest zum Return on Expectations
Vom Return on Invest zum Return on Expectations
 
Tilaaja tuottaja-seminaari Kari Hakari
Tilaaja tuottaja-seminaari Kari HakariTilaaja tuottaja-seminaari Kari Hakari
Tilaaja tuottaja-seminaari Kari Hakari
 
Le parrainage: pour le meilleur et pour le pire
Le parrainage: pour le meilleur et pour le pireLe parrainage: pour le meilleur et pour le pire
Le parrainage: pour le meilleur et pour le pire
 
Municipale v8 finale 050314pptx
Municipale v8 finale 050314pptxMunicipale v8 finale 050314pptx
Municipale v8 finale 050314pptx
 
Comprar coche
Comprar cocheComprar coche
Comprar coche
 
Trabajo final equipo#4
Trabajo final equipo#4Trabajo final equipo#4
Trabajo final equipo#4
 
Teillé bourg moderne et numérique
Teillé bourg moderne et numériqueTeillé bourg moderne et numérique
Teillé bourg moderne et numérique
 
Nohelia armas
Nohelia armasNohelia armas
Nohelia armas
 
Presentation of the Inventaire des contenus clés aux niveaux du CECR
Presentation of the Inventaire des contenus clés aux niveaux du CECR Presentation of the Inventaire des contenus clés aux niveaux du CECR
Presentation of the Inventaire des contenus clés aux niveaux du CECR
 
Vie à lasne de septembre 2014 partie 2 de 2 - site
Vie à lasne de septembre 2014   partie 2 de 2 - siteVie à lasne de septembre 2014   partie 2 de 2 - site
Vie à lasne de septembre 2014 partie 2 de 2 - site
 
Perderesganar
PerderesganarPerderesganar
Perderesganar
 
Entrepreunariat - Financement - Aides
Entrepreunariat - Financement - AidesEntrepreunariat - Financement - Aides
Entrepreunariat - Financement - Aides
 
Mantenimiento de computador
Mantenimiento de computadorMantenimiento de computador
Mantenimiento de computador
 

Similar to Sockets – Theorie und Implementierung

Sockets – Theorie und Implementierung
Sockets – Theorie und ImplementierungSockets – Theorie und Implementierung
Sockets – Theorie und ImplementierungAndreas Roth
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashStephan Schmidt
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...OPEN KNOWLEDGE GmbH
 
Avoid Network-Issues and Polling
Avoid Network-Issues and PollingAvoid Network-Issues and Polling
Avoid Network-Issues and PollingKai Donato
 
Grundlagen der Kommunikation - von Binär zum OSI Modell
Grundlagen der Kommunikation - von Binär zum OSI ModellGrundlagen der Kommunikation - von Binär zum OSI Modell
Grundlagen der Kommunikation - von Binär zum OSI ModellChristian Höserle
 
Transportsicherheit - SSL und HTTPS
Transportsicherheit - SSL und HTTPSTransportsicherheit - SSL und HTTPS
Transportsicherheit - SSL und HTTPSMarkus Groß
 
Citrix Day 2013: Citirx Networking
Citrix Day 2013: Citirx NetworkingCitrix Day 2013: Citirx Networking
Citrix Day 2013: Citirx NetworkingDigicomp Academy AG
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittFalk Hartmann
 
Making the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICMaking the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICQAware GmbH
 
Apache camel
Apache camelApache camel
Apache camelgedoplan
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoringinovex GmbH
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht SkriptsprachenA. LE
 
Oracle Datenbank-Architektur
Oracle Datenbank-ArchitekturOracle Datenbank-Architektur
Oracle Datenbank-ArchitekturMarkus Flechtner
 
Bidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenBidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenMarco Rico Gomez
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesQAware GmbH
 

Similar to Sockets – Theorie und Implementierung (20)

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

Sockets – Theorie und Implementierung

  • 1. Vortrag in Netztechnik I Andreas Roth
  • 2.
  • 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
  • 9.
  • 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
  • 13.
  • 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