Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Exceptions
7 Generics<T>
8 Äußere.innere Klassen
9 Besondere Klassen der Java SE
10 Architektur, Design und angewandte Objektorientierung
11 Die Klassenbibliothek
12 Bits und Bytes und Mathematisches
13 Datenstrukturen und Algorithmen
14 Threads und nebenläufige Programmierung
15 Raum und Zeit
16 Dateien, Verzeichnisse und Dateizugriffe
17 Datenströme
18 Die eXtensible Markup Language (XML)
19 Grafische Oberflächen mit Swing
20 Grafikprogrammierung
21 Netzwerkprogrammierung
22 Verteilte Programmierung mit RMI
23 JavaServer Pages und Servlets
24 Datenbankmanagement mit JDBC
25 Reflection und Annotationen
26 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Java ist auch eine Insel von Christian Ullenboom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
geb., mit DVD
1482 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1506-0
Pfeil 21 Netzwerkprogrammierung
  Pfeil 21.1 Grundlegende Begriffe
  Pfeil 21.2 URI und URL
    Pfeil 21.2.1 Die Klasse URI
    Pfeil 21.2.2 Die Klasse URL
    Pfeil 21.2.3 Informationen über eine URL *
    Pfeil 21.2.4 Der Zugriff auf die Daten über die Klasse »URL«
  Pfeil 21.3 Die Klasse URLConnection *
    Pfeil 21.3.1 Methoden und Anwendung von URLConnection
    Pfeil 21.3.2 Protokoll- und Content-Handler
    Pfeil 21.3.3 Im Detail: vom URL zur URLConnection
    Pfeil 21.3.4 Der Protokoll-Handler für Jar-Dateien
    Pfeil 21.3.5 Basic Authentication/Proxy-Authentifizierung
  Pfeil 21.4 Mit GET und POST Daten übergeben *
    Pfeil 21.4.1 Kodieren der Parameter für Serverprogramme
    Pfeil 21.4.2 Eine Suchmaschine mit GET-Request ansprechen
    Pfeil 21.4.3 POST-Request absenden
  Pfeil 21.5 Host- und IP-Adressen
    Pfeil 21.5.1 Lebt der Rechner?
    Pfeil 21.5.2 IP-Adresse des lokalen Hosts
    Pfeil 21.5.3 Das Netz ist Klasse …
    Pfeil 21.5.4 NetworkInterface
  Pfeil 21.6 Mit dem Socket zum Server
    Pfeil 21.6.1 Das Netzwerk ist der Computer
    Pfeil 21.6.2 Sockets
    Pfeil 21.6.3 Eine Verbindung zum Server aufbauen
    Pfeil 21.6.4 Server unter Spannung: die Ströme
    Pfeil 21.6.5 Die Verbindung wieder abbauen
    Pfeil 21.6.6 Informationen über den Socket *
    Pfeil 21.6.7 Reine Verbindungsdaten über SocketAddress *
  Pfeil 21.7 Client-Server-Kommunikation
    Pfeil 21.7.1 Warten auf Verbindungen
    Pfeil 21.7.2 Ein Multiplikationsserver
    Pfeil 21.7.3 Blockierendes Lesen
    Pfeil 21.7.4 Von außen erreichbar sein *
  Pfeil 21.8 Apache HttpComponents und Commons Net
    Pfeil 21.8.1 HttpComponents
    Pfeil 21.8.2 Jakarta Commons Net
  Pfeil 21.9 Zum Weiterlesen

»In einer Fünftelsekunde kannst du eine Botschaft rund um die Welt senden. Aber es kann Jahre dauern, bis sie von der Außenseite eines Menschenschädels nach innen dringt.« – Charles F. Kettering (1876–1958)

21 Netzwerkprogrammierung

Verbindungen von Rechnern unter Java aufzubauen ist ein Kinderspiel – somit ist die Netzwerkprogrammierung, die heutzutage noch aufwändig und kompliziert ist, schnell erledigt. Für Sun Microsystems sind Netzwerke das zentrale Computerthema, deshalb hat die Firma den Slogan »The Network is the Computer« gleich als Warenzeichen eingetragen. Die Netzwerk-API ist mehrheitlich im Paket java.net zu finden, wobei es auch zwei Klassen in javax.net gibt.


Rheinwerk Computing - Zum Seitenanfang

21.1 Grundlegende Begriffe  topZur vorigen Überschrift

Wenn ein Anwenderprogramm Daten in einem Netzwerk wie dem Internet erfragt, sind eine ganze Reihe von Technologien und Standards involviert. Die folgenden Abschnitte erklären die zentralen Begriffe kurz.

Ein am Netzwerk angeschlossener Rechner heißt Host. Jeder Host bekommt eine eigene IP-Adresse, sodass er eindeutig im Netz identifiziert ist. Als IP-Adressen sieht die Version IP4v eine 32-Bit-Zahl vor und das neuere IPv6 eine 128-Bit-Zahl. Da IP-Adressen wie 195.190.9.30 (IPv4) oder 2001:252:0:1::2008:6 (IPv6) nicht leicht zu merken sind, werden Hostnamen statt der IP-Nummern verwendet. So steht zum Beispiel tutego.com für die IP-Adresse 195.190.9.30. Symbolische Namen haben noch einen weiteren Vorteil: die IP-Adresse kann sich ändern, etwa wenn ein Server von einem Standort zum anderen zieht, ohne dass der Benutzer davon etwas mitbekommt. Die Zuordnung zwischen Name und IP-Adresse übernimmt ein Dienst namens DNS (Domain Name Service). Online lässt sich dieser Dienst etwa bei Heise auf der Webseite http://www.heise.de/netze/tools/dns-abfrage nutzen.

Kommunizieren zwei Applikationen via Internet miteinander, tauschen sie Datenpakete aus. Der Datenstrom einer Anwendung wird vom Netzwerkstack in viele kleine Pakete zerlegt. Jedes Paket macht sich dann, unabhängig von den anderen, im Netzwerk auf die Reise zum Empfänger. Der wichtigste Standard für die Vermittlung eines Pakets ist das Internet Protocol (IP).

Ein IP-Paket ist ein Bytefeld, was aus einem Körper (engl. body) und Zusatzinformationen (engl. header) besteht. Die Weiterleitung der Pakete von einem Rechner zum nächsten wird von einem Router übernommen. Dieser spezielle Rechner gibt Pakete zwischen verschiedenen Netzwerken weiter und erzeugt somit eine Route von einem Rechner zum anderen. Es existieren verschiedene Routing-Protokolle, die es Routern erlauben, untereinander Informationen auszutauschen, damit immer der optimale Weg für den Datenstrom im Netzwerk gewählt werden kann. Ein Paket soll sich ja nicht im Kreis bewegen oder über zu viele Router laufen, wenn es kürzere Pfade gibt. Welchen Pfad ein Paket vom eigenen Rechner zum Server nimmt, zeigen Tools wie traceroute (http://de.wikipedia.org/wiki/Traceroute). Für IP-Pakete vom Server www.heise.de zu einem gewünschten Rechner listet die Webseite unter http://www.heise.de/netze/tools/traceroute die Route sowie Zeitinformationen auf.

IP ist ein verbindungsloses Protokoll. Das bedeutet, dass Pakete verloren gehen, beschädigt, doppelt oder in der falschen Reihenfolge ankommen können. Und so nutzen Applikationen wie Webbrowser oder EMail-Clients nicht direkt das Internet Protocol, sondern ein komfortableres Transportprotokoll, was eine Schicht über den IP-Protokollen (IPv4 oder IPv6) liegt: das Transmission Control Protocol (TCP). Es kümmert sich um die korrekte Reihenfolge der Pakete und fordert sie bei Verlust erneut an. Weil TCP und IP häufig gemeinsam Anwendung finden, entstand die Bezeichnung TCP/IP. TCP ist aber nicht das einzige Protokoll, das über der IP-Vermittlungsschicht sitzt. Zwei weitere Protokolle sind das User Datagram Protocol (UDP) und das Stream Control Transmission Protocol (SCTP).

Wenn wir mit der Netzwerk-API von Java programmieren, bekommen wir von der Transport- und Vermittlungsschicht nichts mit. Unser Programmiermodell basiert auf Sockets, die eine API zur TCP-Ebene darstellen. Und da IP unter TCP liegt, befinden sich Einstellungen auf der Vermittlung- und Router-Ebene außerhalb unseres Einflussbereichs.

Internet-Standards und RFC

Ein RFC (Request For Comment) ist ein Standardisierungsvorschlag, der nicht so förmlich wie traditionelle Normen (DIN, ISO oder IEEE) ist, aber im offenen Internet dennoch eine wichtige Rolle einnimmt und quasi De-facto-Standard ist. Jeder RFC wird durch eine eigene Nummer referenziert; so ist das Internet Protocol (das IP in TCP/IP) in RFC 791 und das Protokoll, mit dem E-Mails befördert werden, in RFC 2821 (früher RFC 821) beschrieben. Der Diskussionsprozess selbst ist in RFC 1310 dokumentiert. Der Titel ist »The Internet Standards Process«. Wer selbst Ideen für einen Standard (Proposed Standard) hat, übergibt diese der Internet Engineering Task Force (IETF). Die Vorschläge werden diskutiert und können dann, sofern sie stabil, sinnvoll und verständlich sind, zu einem RFC werden. Falls zwei unterschiedliche Implementierungen existieren, kann dieser Vorschlag spätestens nach einem Jahr offiziell werden. RFCs lassen sich über http://www.rfc-editor.org/ suchen. Die Seite http://rfc-ref.org/ bietet die RFCs im HTML-Format mit Verlinkungen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Java SE Bibliotheken






 Java SE Bibliotheken


Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Einstieg in Eclipse






 Einstieg in
 Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in
 Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de