Netzwerkprogrammierung



Ähnliche Dokumente
Transmission Control Protocol (TCP)

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Guide DynDNS und Portforwarding

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Programmiermethodik. Übung 13

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Sockets.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Timer. Sockets.

Java: Vererbung. Teil 3: super()

Referat: Netzwerkprogrammierung in Java

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Programmierkurs Java

Konfiguration eines DNS-Servers

Themen. Web Service - Clients. Kommunikation zw. Web Services

Virtual Private Network

Collax PPTP-VPN. Howto

Benutzerhandbuch MedHQ-App

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS

Lizenzen auschecken. Was ist zu tun?

Woher kommt die Idee Internet?

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

Der Schalter Eigenschaften öffnet die rechts stehende Ansicht. Internetprotokolle aussuchen

Technische Grundlagen von Internetzugängen

Gefahren aus dem Internet 1 Grundwissen April 2010

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Adressumleitung beim Surfen. Allgemeines

Networking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL

VS Praktikum 03 Konzept

Übungen zu Softwaretechnik

Kurzanweisung für Google Analytics

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

Remote Method Invocation

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

ICS-Addin. Benutzerhandbuch. Version: 1.0

Wenn keine Verbindung zwischen den Computern besteht, dann bist du offline.

So die eigene WEB-Seite von Pinterest verifizieren lassen!

Leichte-Sprache-Bilder

Einrichtung von VPN-Verbindungen unter Windows NT

DynDNS Router Betrieb

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Schritt 1: Starten Sie Hidemyass, wählen Sie "IP: Port Proxies"

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Tipps und Tricks zu Netop Vision und Vision Pro

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Websites mit Dreamweaver MX und SSH ins Internet bringen

1 Mit einem Convision Videoserver über DSL oder ISDN Router ins Internet

Step by Step Webserver unter Windows Server von Christian Bartl

How-to: VPN mit PPTP und dem Windows VPN-Client. Securepoint Security System Version 2007nx

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Internet online Update (Internet Explorer)

Kurzanleitung So geht s

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt.

Objektorientierte Programmierung

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Rillsoft Project - Installation der Software

1. Der Router ist nicht erreichbar Lösungsansatz: IP Adresse des Routers überprüfen ( entweder irgendwo auf dem Gerät aufgeklebt oder im Handbuch )

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Proxyeinstellungen für Agenda-Anwendungen

Anwendungsprotokolle: HTTP, POP, SMTP

7. TCP-IP Modell als Rollenspiel

4. Thread- und Netzwerk- Programmierung

ANLEITUNG NETZEWERK INSTALATION

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Adressen der BA Leipzig

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

1 Schritt: Auf der Seite einloggen und. ODER Zertifikat für VPN, wenn sie nur VPN nutzen möchten

Firewalls für Lexware Info Service konfigurieren

Outlook Exp. Konten einrichten, so geht es!

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Outlook-Daten komplett sichern

Anbindung des eibport an das Internet

mmone Internet Installation Windows XP

Eine Anwendung mit InstantRails 1.7

Java-Programmierung. Remote Method Invocation - RMI

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

So empfangen Sie eine verschlüsselte von Wüstenrot

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version Deutsch

How-to: VPN mit L2TP und dem Windows VPN-Client. Securepoint Security System Version 2007nx

Dokumentation FileZilla. Servermanager

Kurzanleitung OOVS. Reseller Interface. Allgemein

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Beispiel Time Client/Server

Wenn der PC Kinder bekommt

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Teil 1: Ein einfacher Chat

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Einführung in die Programmierung

Aufgabe 12.1b: Mobilfunknetzwerke

Anleitungen zum Publizieren Ihrer Homepage

Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2

Anleitung zur Nutzung des SharePort Utility

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Transkript:

Netzwerkprogrammierung 1

Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen. Mit Datenströmen wird das Lesen/Schreiben so leicht wie der Zugriff auf das Dateisystem. Verbindung zu Servern und Abrufen von Daten mit gewöhnlichen Web-Protokollen und Sockets. 2

Internet-Adressen 3

IP-Adressen und Rechnernamen Jeder Rechner ist im Internet durch eine Adresse identifiziert. Man nennt diese IP-Adresse. 192.168.123.100 66.70.168.193 IP Adressen sind nicht leicht zu merken. Daher stehen stellvertretend für Adressen einfache Namen. Ein spezieller Dienst wandelt den Namen in eine IP-Adresse um. Dieser Dienst ist der Namensdienst und wird von einem DNS-Server übernommen. 4

InetAddress Der Umgang mit IP-Adressen übernimmt eine Java-Klasse java.net.inetaddress. Die Klasse InetAddress hat keine öffentlichen Konstrukturen, nur einige statische Methoden InetAddress getlocalhost() liefert die IP-Adresse des lokalen Rechners, oft (127.0.0.1) InetAddress getbyname(stringhost) liefert die IP-Address eines gegebenen Hosts. Der Parameter host ist entweder der Maschinenname (»tutego.com«) oder eine String-Repräsentation der IP- Adresse (»209.204.253.212«). Kann die IP-Adresse nicht gefunden werden, so lösen die Methoden eine UnknownHostException aus. 5

Abfragen über InetAddress Die Objektmethoden stellen Anfragen an das InetAddress- Objekt: byte[] getaddress() Liefert die IP-Adresse als Bytefeld. String gethostaddress() Liefert einen String in der Form A.B.C.D String gethostname() Liefert den Hostnamen für die Adresse. 6

URL-Verbindungen 7

Anfragen an einen Web-Server Anfragen werden über das Protokoll HTTP an den Server geschickt. Request mit URL Response mit Inhalt 8

URL-Verbindungen Eine URL (RFC 1738) ist das Adressenformat für eine Ressource im World Wide Web. Die URL (Uniform ResourceLocater) enthält Namen des benutzten Schemas (Protokoll) und eine Spezialisierung Protokoll Spezialisierung Anders gesagt: Eine URL beinhaltet Methode des Zugriffes (HTTP, FTP) und Ort. 9

URL-Objekte URL-Objekte repräsentieren Hostnamen, Port und Dateiname. String s = "http://www.java-tutor.com/index.html"; try { URL url = new URL( s ); } catch ( MalformedURLException e ) { } Die Konstruktoren lösen eine MalformedURLException aus, wenn der Parameter im Konstruktor null ist oder das URL-Objekt ein unbekanntes Protokoll beschreibt. 10

Verbindungen zum Netz Die Klasse URL definiert die Methode openstream(), die ein InputStream-Objektliefert. Damit wird eine Netzwerkverbindung mit dem URL-Objekt tatsächlich geöffnet. Die Methode kann eine IOException auslösen! Um aus dem InputStream zu lesen, bietet sich Scanner an. Eine Kombination von hasnextline() und nextline() liefert alle Zeilen. Auch hilft der Scanner bei einer speziellen Konvertierung. 11

Daten auslesen InputStream is = null; try { is = url.openstream(); Scanner s = new Scanner( is ); while ( s.hasnextline() ) System.out.println( s.nextline() ); } catch ( IOException e ) { System.out.println( e ); } finally { try { is.close(); } catch(exception e){} } 12

Einen Internet-Proxynutzen Der Internetverkehr größerer Firmen geht in der Regel durch einen Proxy. Ein Proxy-Server lässt sich ich Java durch spezielle Property- Variablenzuweisen: System.setProperty( "proxyset", "true" ); System.setProperty( "proxyhost", "proxy" ); System.setProperty( "proxyport", "81" ); 13

CGI-Anfragenlosschicken 14

Suchmaschinen mit dem Browser Benutzung der Suchmaschine http://www.google.de. Der Browser generiert daraus eine spezielle URL, die er zum Server schickt. 15

Kodieren für CGI-Programme Wenn aus HTML-Datei mit Formularen Daten an das CGI- Programmübermittelt werden, dann werden diese Daten kodiert. Viele Zeichen sind in der URL nicht erlaubt. Etwa: Leerzeichen werden durch Plus-Zeichen kodiert. Ulli + Tanja Ulli+%26+Tanja Die statischen Methode encode() der Klasse java.net.urlencoder führt eine Konvertierung durch. String s = URLEncoder.encode("%mit%Prozenten"); 16

Eine Suchabfrage formulieren Wenn wir das Abschicken eines HTML-Formulars für eine Suchabfrage nachbilden wollen, dann müssen wir alle Informationen in den Felder sammeln und codieren. Anschließend wird der codierte Inhalt hinter die URL des CGI-Programmesgehängt. Die Parameter werden durch ein Fragezeichen getrennt. 17

Ran an Google String s = ""; for ( int i = 0; i < args.length; i++ ) s += args[i] + " "; s = "q=" + URLEncoder.encode( s.trim() ); try { URL url = new URL( "http://www.google.com/search?" + s ); } InputStream in = url.openstream();... 18

Netzwerk-Clients 19

Sockets URL-Verbindungen sind schon High-Level Verbindungen. Die Rechner, die im Internet verbunden sind, kommunizieren über Protokolle (bsp. TCP/IP). Ein Socket dient zur Abstraktion und ist ein Verbindungspunkt in einem TCP/IP Netzwerk. Wer Daten empfängt (Client) öffnet eine Socket-Verbindungzum Horchen und derjenige der sendet, öffnet eine Verbindung zum Senden (Server). 20

Was ist ein Port? Für jeden Dienst (Service), den ein Server zur Verfügung stellt, gibt es einen Port. Alltagsbeispiel: Es reicht nicht aus, die Adresse der Verwaltung in der Stadt zu kennen. Ich brauche auch noch eine Zimmernummer. IP-Adressen und Ports werden nicht willkürlich, sondern von der IANA (Internet AssignedNumbersAuthority) vergeben. Die Portnummer ist eine 16 Bit Zahl, eingeteilt in System 0-1023 ( Well-Known, Contact) und Benutzer 1024-65535. Komplette Liste ist unter ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers 21

Sockets Mit einem Socket baut man eine feste Verbindung zu einem Rechner auf, die für die Dauer der Übertragung bestehen bleibt. out in Server Client in out ServerSocket Socket Was für den Server Ausgabe-/Eingabestrom ist, ist für den Client Eingabe-/Ausgabstrom. 22

Unter Spannung: Die Ströme Auf der Client-Seite bauen wir zuerst ein Socket-Objektauf. Der Server soll auf Port 80 kontaktiert werden. Socket clientsock; clientsock = new Socket( "die.weite.welt", 80 ); Die Klasse Socket bietet die Methoden getinputstream() und getoutputstream(), die einen Zugang zum Datenstrom erlauben. Um die Performanz zu heben, können wir einen gepufferten OutputSteam nutzen: InputStream is = server.getinputstream(); BufferedReader in; in = new BufferedReader( new InputStreamReader(is) ); 23

Server implementieren 24

Client-Server Kommunikation Ein Server durch die Klasse ServerSocket repräsentiert. Wollen wir Server programmieren, erzeugen wir ein ServerSocket-Objektmit einem Konstruktor, dem wir einen Port Parameter übergeben. try { ServerSocket socket = new ServerSocket( 1234 ); } catch ( IOException e ) { /* belegt? */ } 25

Auf Verbindungen horchen Mit accept() der Klasse ServerSocket akzeptieren wir eine eingehende Verbindung. Socket client = serversocket.accept(); Nun können wir mit dem zurückgegebenen Client-Socket genauso verfahren wir mit dem schon programmierten Client. 26

Die 6 Schritte ❶ Ein Server-Socket erzeugen der horcht ❷ Mit der accept()-methodeauf neue Verbindungen warten ❸ Ein-und Ausgabestrom vom zurückgegebenen Socket erzeugen ❹ Mit einem definierten Protokoll die Konversation unterhalten ❺ Streamvom Client und Socket schließen ❻ Bei Schritt 2 weitermachen oder Server-Socketschließen 27

Server import java.net.*; import java.io.*; class Server { public static void main( String args[] ) throws IOException { ServerSocket server = new ServerSocket( 3141 ); while ( true ) { Socket client = server.accept(); InputStream in = client.getinputstream(); OutputStream out = client.getoutputstream(); int zahl1 = in.read(); // -128..+127 int zahl2 = in.read(); } } out.write( zahl1 * zahl2 ); client.close(); 28

Client class Client { public static void main( String args[] ) throws IOException { Socket server = new Socket ( "localhost", 3141 ); InputStream in = server.getinputstream(); OutputStream out = server.getoutputstream(); out.write( 4 ); out.write( 9 ); int result = in.read(); System.out.println( result ); } } server.close(); 29