Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,

Ähnliche Präsentationen


Präsentation zum Thema: "Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,"—  Präsentation transkript:

1 Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol, IP: Internet Protocol) Jedes teilnehmende Gerät (Computer, Drucker, usw.), Knoten genannt, besitzt eine ein- deutige IP-Adresse aus 4 bytes = 32 bit, in der gepunkteten Form nnn.nnn.nnn.nnn, wo nnn eine Dezimalzahl zwischen 0 und 255 ist, beispielsweise Ein hierarchischer Domain Name Service (DNS) erlaubt die Verwendung von IP-Aliasis, z.B. Unter TCP/IP werden die Informationen paketweise übertragen. Es ist fehlertolerant, da an Hand einer Prüfsumme Fehler erkannt und ein fehlerhaftes Paket neu angefordert werden TCP/IP beruht auf einer Client-Server-Hierarchie und nicht auf einem Netzwerk gleichwertiger Knoten (kein peer-to-peer) Request Response Client Client Client Server Demon Port 80 Demon Port Ein Client führt einen Request an eine bestimmte IP-Adresse mit Angabe eines bestimmten Ports ( ) aus. Ein Demon des Servers überwacht diesen Port, nimmt den Request entgegen, verarbeitet ihn und liefert einen Response an den Client zurück s. Buch S. 503ff

2 Learning By Doing Sockets Sockets legen so viele Schichten über die Komplexität der Netzwerkverbindungen, dass diese wie ein Datenstrom (Stream), analog einer Dateioperation, aufgefasst werden können Einen Socket kann man auch als Zugangspforte eines IP-Verbindungskanals zwischen einem Server (Host) und einem Client auffassen Für einen Client sind die wichtigsten Socket-Operationen: Für einen Server kommen noch folgende Operationen hinzu: - Verbindung erstellen (open) - Daten senden (send) - Daten empfangen (read) - Verbindung beenden (close) - Binden eines IP-Ports (bind) - Verbindungsaufforderung annehmen (accept) In Java werden Sockets ausserordentlich gut unterstützt, Socket-Programmierung ist daher verglichen mit anderen Programmiersprachen mit wenig Aufwand verbunden Socket-Programmierung ist im Internet-Zeitalter sehr motivierend und eignet sich gut für den thematischen Unterricht und Maturaarbeiten

3 Learning By Doing Daytime Client // WbzEx20.java import java.net.*; import java.io.*; import ch.aplu.util.*; public class WbzEx20 extends Console { private static final String HOSTNAME = "ntp1.ptb.de"; private static final int PORT = 13; public WbzEx20() { BufferedReader reader = null; Socket socket = null; String line; println("Trying to connect to " + HOSTNAME + "..."); try { socket = new Socket(HOSTNAME, PORT); println("Connection established"); socket.setSoTimeout(15000); // 15 sec reader = new BufferedReader( new InputStreamReader( socket.getInputStream())); println("Response:"); while ((line = reader.readLine()) != null) { println(line); } catch (IOException ex) { println("Error " + ex); } finally { try { if (reader != null) reader.close(); if (socket != null) socket.close(); } catch (IOException ex) {} } public static void main(String args[]) { new WbzEx20(); } Daytime-Client Nach der Annahme der Verbindung auf Port 13 sendet der Server einen String mit der aktuellen Datums-Zeit Phys.-Techn. BundesanstaltVerbindung erstellen Daten vom Host lesen blockierend Stream erzeugenDaten aus- schreiben Stream und Socket schliessen Timeout für readline()

4 Learning By Doing Web-Reader // WbzEx20a.java... (wie WbzEx20.java) public class WbzEx20a extends Console { private static final String HOSTNAME = "www.unibe.ch"; private static final int PORT = 80; public WbzEx20a() { BufferedReader reader = null; Socket socket = null; String line; println("Trying to connect to " + HOSTNAME + "..."); try { socket = new Socket(HOSTNAME, PORT); socket.setSoTimeout(15000); // 15 sec println("Connection established"); PrintWriter out = new PrintWriter(socket.getOutputStream()); out.print("GET / HTTP/1.0\r\n\r\n"); out.flush(); reader = new BufferedReader( new InputStreamReader(socket.getInputStream())); println("Response:"); while ((line = reader.readLine()) != null) { println(line); }... (wie WbzEx20.java) Web-Reader Nach der Annahme der Ver- bindung auf Port 80 sendet der Client den HTTP-String GET / HTTP/1.0 gefolgt von zwei Leerzeilen Output-Stream erzeugen Stream leeren, damit mit Sicherheit ausgeschrieben HTTP GET-Request Response lesen und ausschreiben


Herunterladen ppt "Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,"

Ähnliche Präsentationen


Google-Anzeigen