Vortrag in Netztechnik I
Andreas Roth
 Ein Software-Modul, das den Austausch
von Daten zwischen Applikationen und
Rechnern in einem Netzwerk ermöglicht.
 Aust...
 Sockets können als Endepunkte einer
Netzwerkverbindung verstanden werden.
 Die Kommunikation über Sockets ist
bidirekti...
5
 Winsocks (Windows Socket Library):
Socket API für die Windows-Systeme.
 BSD-Sockets (Berkeley Sockets):
Socket API für ...
 Stream Sockets:
◦ Kommunikation über Zeichen-Datenstrom.
◦ Verwendung von TCP-Protokoll.
 Datagram Sockets:
◦ Kommunika...
 Stream Sockets:
◦ Zuverlässige, verbindungsorientierte
Kommunikation (Datenübertragung, Remote).
 Datagram Sockets:
◦ V...
Server
„hört“
auf Host
und Port
Client
verbindet
sich gegen
den Server
Server und Client
senden/empfangen
Daten Streams
Se...
 Prinzip: Open-Read-Write-Close
 Clientseitig:
◦ Client Socket erstellen.
◦ Client Socket an Server-Adresse binden.
◦ Se...
 Serverseitig:
◦ Server Socket erstellen.
◦ Server Socket an einen Port binden.
◦ Auf Anfragen von Clients warten.
◦ Anfr...
import java.net.ServerSocket;
import java.net.Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
pub...
// Auf (mehrfache) Anfragen von Clients warten...
while (true) {
// Anfrage akzeptieren/zulassen und NEUES Socket-Paar ers...
import java.net.Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class MeinClient {
public ...
17
 Demo…
 http://de.wikipedia.org/wiki/Socket_%28Software%29
[Stand: 14.10.2012].
 http://de.wikipedia.org/wiki/Interprozesskommu...
Fragen?
 Ableitung von „listening“ Server zu einem
„connected“ Server-Socket (Wichtig: Es wird
ein NEUER Socket erstellt!).
 Abl...
 Standardisierung der Socket-Programmierung
durch die University of California (Berkeley).
 Verbindung zwischen Client- ...
 Alternativen zu Sockets:
◦ Pipes: gepufferter uni- oder bidirektionaler
Datenstrom nach dem FIFO-Prinzip.
◦ Shared Memor...
 Wildcard-Adresse: ein oder mehrere Teile der
Adresse nicht spezifisch ist (z.B. Port-
Nummer mit spezifisch ungültigen I...
Sockets – Theorie und Implementierung
Sockets – Theorie und Implementierung
Sockets – Theorie und Implementierung
Nächste SlideShare
Wird geladen in …5
×

Sockets – Theorie und Implementierung

415 Aufrufe

Veröffentlicht am

Slides out of a presentation within the Study of Applied Computer Sciences (Network-Sockets). - Lang: German
---
Präsentation im Zuge des Studiums der Angewandten Informatik (Netztechnik-Sockets) - Sprache: Deutsch

Veröffentlicht in: Bildung
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
415
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Sockets – Theorie und Implementierung

  1. 1. Vortrag in Netztechnik I Andreas Roth
  2. 2.  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
  3. 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
  4. 4. 5
  5. 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
  6. 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
  7. 7.  Stream Sockets: ◦ Zuverlässige, verbindungsorientierte Kommunikation (Datenübertragung, Remote).  Datagram Sockets: ◦ Verbindungslose Kommunikation (Elektronische „Wurfsendungen“).  Raw Sockets: ◦ Netzwerknahe Applikationen wie Router. 8
  8. 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
  9. 9.  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
  10. 10.  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
  11. 11. 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
  12. 12. // 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
  13. 13. 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
  14. 14. 17  Demo…
  15. 15.  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
  16. 16. Fragen?
  17. 17.  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
  18. 18.  Standardisierung der Socket-Programmierung durch die University of California (Berkeley).  Verbindung zwischen Client- und Server- Socket auf bestimmten Port wird auch „Rendezvous“ genannt. 21
  19. 19.  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
  20. 20.  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

×