Vortrag in Netztechnik I
Andreas Roth


Ein Software-Modul, das den Austausch
von Daten zwischen Applikationen und
Rechnern in einem Netzwerk ermöglicht.



A...






Endepunkte einer
Netzwerkverbindung verstanden werden.
Sockets können als

Die Kommunikation über Sockets ist
bid...
5


Winsocks (Windows Socket Library):



BSD-Sockets (Berkeley Sockets):



Unix Domain Sockets:

Socket API für die Win...


Stream Sockets:
◦ Kommunikation über Zeichen-Datenstrom.
◦ Verwendung von TCP-Protokoll.



Datagram Sockets:
◦ Kommun...


Stream Sockets:
◦ Zuverlässige, verbindungsorientierte
Kommunikation (Datenübertragung, Remote).



Datagram Sockets:
...
Client
verbindet
sich gegen
den Server

Server und Client
senden/empfangen
Daten Streams

Server
„hört“
auf Host
und Port
...


Prinzip: Open-Read-Write-Close



Clientseitig:
◦
◦
◦
◦
◦

Client Socket erstellen.
Client Socket an Server-Adresse bi...


Serverseitig:
◦
◦
◦
◦
◦
◦

Server Socket erstellen.
Server Socket an einen Port binden.
Auf Anfragen von Clients warten...
import
import
import
import

java.net.ServerSocket;
java.net.Socket;
java.io.DataInputStream;
java.io.DataOutputStream;

p...
// 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...


Demo…

17


http://de.wikipedia.org/wiki/Socket_%28Software%29
[Stand: 14.10.2012].



http://de.wikipedia.org/wiki/Interprozessko...
Fragen?






Ableitung von „listening“ Server zu einem
„connected“ Server-Socket (Wichtig: Es wird
ein NEUER Socket erstellt!)...




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 Memo...




Wildcard-Adresse: ein oder mehrere Teile der
Adresse nicht spezifisch ist (z.B. PortNummer mit spezifisch ungültigen...
Sockets – Theorie und Implementierung
Sockets – Theorie und Implementierung
Sockets – Theorie und Implementierung
Nächste SlideShare
Wird geladen in …5
×

Sockets – Theorie und Implementierung

392 Aufrufe

Veröffentlicht am

Präsentation im Zuge des 3. Semesters, Angewandte Informatik.

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

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
392
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
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  Austausch von Daten zwischen Prozessen auf verschiedenen Rechnern. demselben Rechner (Interprozesskommunikation). 3
  3. 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
  4. 4. 5
  5. 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
  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. 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
  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 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
  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.  Demo… 17
  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 ServerSocket 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. 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

×