SlideShare ist ein Scribd-Unternehmen logo
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



Austausch von Daten zwischen Prozessen auf

verschiedenen Rechnern.
demselben Rechner

(Interprozesskommunikation).

3






Endepunkte einer
Netzwerkverbindung verstanden werden.
Sockets können als

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):



BSD-Sockets (Berkeley Sockets):



Unix Domain Sockets:

Socket API für die Windows-Systeme.

Socket API für Unix und unixartige Systeme .

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
Client
verbindet
sich gegen
den Server

Server und Client
senden/empfangen
Daten Streams

Server
„hört“
auf Host
und Port

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
import
import
import

java.net.ServerSocket;
java.net.Socket;
java.io.DataInputStream;
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


Demo…

17


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 ServerSocket 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. PortNummer 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

Andere mochten auch

Weil wir dich alle vermissen
Weil wir dich alle vermissenWeil wir dich alle vermissen
Weil wir dich alle vermissen
Natascha Wentseis
 
Gefuehle
GefuehleGefuehle
Gefuehle
Olaf Hantl
 
Halbzeit!
Halbzeit! Halbzeit!
Web20 Tu Kaiserlautern
Web20 Tu KaiserlauternWeb20 Tu Kaiserlautern
Web20 Tu Kaiserlautern
Bernd Schmitz
 
Das Kreuz und das leere Grab
Das Kreuz und das leere GrabDas Kreuz und das leere Grab
Das Kreuz und das leere Grab
David Zimmermann
 
Schulprojekt- für Flüchtlingskinder
Schulprojekt- für FlüchtlingskinderSchulprojekt- für Flüchtlingskinder
Schulprojekt- für Flüchtlingskinder
Tibethilfe
 
DOC012
DOC012DOC012
Redes LAN
Redes LANRedes LAN
Redes LAN
Jesus Guerra
 
Piraten programm (1)
Piraten programm (1)Piraten programm (1)
Piraten programm (1)annettjuenger
 

Andere mochten auch (11)

Weil wir dich alle vermissen
Weil wir dich alle vermissenWeil wir dich alle vermissen
Weil wir dich alle vermissen
 
Gefuehle
GefuehleGefuehle
Gefuehle
 
Pet Business June16
Pet Business June16Pet Business June16
Pet Business June16
 
Halbzeit!
Halbzeit! Halbzeit!
Halbzeit!
 
Web20 Tu Kaiserlautern
Web20 Tu KaiserlauternWeb20 Tu Kaiserlautern
Web20 Tu Kaiserlautern
 
Das Kreuz und das leere Grab
Das Kreuz und das leere GrabDas Kreuz und das leere Grab
Das Kreuz und das leere Grab
 
Schulprojekt- für Flüchtlingskinder
Schulprojekt- für FlüchtlingskinderSchulprojekt- für Flüchtlingskinder
Schulprojekt- für Flüchtlingskinder
 
DOC012
DOC012DOC012
DOC012
 
Henrik
HenrikHenrik
Henrik
 
Redes LAN
Redes LANRedes LAN
Redes LAN
 
Piraten programm (1)
Piraten programm (1)Piraten programm (1)
Piraten programm (1)
 

Ähnlich wie 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
Stephan 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 Polling
Kai 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 Modell
Christian Höserle
 
Transportsicherheit - SSL und HTTPS
Transportsicherheit - SSL und HTTPSTransportsicherheit - SSL und HTTPS
Transportsicherheit - SSL und HTTPSMarkus Groß
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
Patrick Paechnatz
 
Connext de
Connext deConnext de
Connext de
Simona Giosa
 
Apache camel
Apache camelApache camel
Apache camel
gedoplan
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
QAware GmbH
 
Citrix Day 2013: Citirx Networking
Citrix Day 2013: Citirx NetworkingCitrix Day 2013: Citirx Networking
Citrix Day 2013: Citirx Networking
Digicomp Academy AG
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
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
QAware GmbH
 
Vorlesung SOA - DIS AG.pptx
Vorlesung SOA - DIS AG.pptxVorlesung SOA - DIS AG.pptx
Vorlesung SOA - DIS AG.pptx
Community ITmitte.de
 
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
Gregor Biswanger
 
WebSocket my APEX!
WebSocket my APEX!WebSocket my APEX!
WebSocket my APEX!
Kai Donato
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittFalk Hartmann
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
Nane Kratzke
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoring
inovex GmbH
 
Oracle Datenbank-Architektur
Oracle Datenbank-ArchitekturOracle Datenbank-Architektur
Oracle Datenbank-Architektur
Markus Flechtner
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
A. LE
 

Ähnlich wie Sockets – Theorie und Implementierung (20)

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
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
Connext de
Connext deConnext de
Connext de
 
Apache camel
Apache camelApache camel
Apache camel
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
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
 
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
 
Vorlesung SOA - DIS AG.pptx
Vorlesung SOA - DIS AG.pptxVorlesung SOA - DIS AG.pptx
Vorlesung SOA - DIS AG.pptx
 
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
 
WebSocket my APEX!
WebSocket my APEX!WebSocket my APEX!
WebSocket my APEX!
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen Schritt
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoring
 
Oracle Datenbank-Architektur
Oracle Datenbank-ArchitekturOracle Datenbank-Architektur
Oracle Datenbank-Architektur
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
 

Sockets – Theorie und Implementierung