16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

9. Netzwerkprogrammierung<br />

Das Paket java.net enthält Klassen zur Programmierung von TCP/IP 345 -<br />

Netzwerkzugriffen. Dieses (Internet-) Protokoll stellt die Basis aller <strong>Java</strong>-Netzzugriffe<br />

dar. Darauf aufbauend gibt es weiter entwickelte Netzwerkprotokolle wie RMI für<br />

entfernte Metho<strong>de</strong>naufrufe und verteilte Anwendungen und Enterprise<br />

<strong>Java</strong>Beans für verteilte Objekte.<br />

9.1 Adressen, Ressourcen und URLs<br />

9.1.1 Die Klasse InetAddress<br />

Zur Adressierung von Rechnern im Netz wird die Klasse InetAddress <strong>de</strong>s Pakets<br />

java.net verwen<strong>de</strong>t. E<strong>in</strong>e InetAddress enthält sowohl e<strong>in</strong>e IP-Adresse 346 als<br />

auch <strong>de</strong>n symbolischen Namen <strong>de</strong>s jeweiligen Rechners 347 . Die bei<strong>de</strong>n Bestandteile<br />

können mit <strong>de</strong>n Metho<strong>de</strong>n getHostName() und getHostAddress() abgefragt<br />

wer<strong>de</strong>n. Mit Hilfe von getAddress() kann die IP-Adresse auch direkt als „byte“-<br />

Array (mit 4 Elementen) beschafft wer<strong>de</strong>n.<br />

Zur Generierung e<strong>in</strong>es InetAddress-Objekts stehen zur Verfügung:<br />

public static InetAddress getByName(Str<strong>in</strong>g host) throws<br />

UnknownHostException<br />

// erwartet e<strong>in</strong>en Str<strong>in</strong>g mit <strong>de</strong>r IP-Adtesse o<strong>de</strong>r <strong>de</strong>m Namen als Argument<br />

public static InetAddress getLocalHost() throws UnknownHostException<br />

// liefert e<strong>in</strong> InetAdress-Objekt für <strong>de</strong>n eigenen Rechner<br />

Das folgen<strong>de</strong> Programm 348 ermittelt zu e<strong>in</strong>er IP-Adresse <strong>de</strong>n symbolischen Namen<br />

<strong>de</strong>s zufehörigen Rechners bzw. zum symbolischen Namen e<strong>in</strong>e IP-Adresse,<br />

import java.net.*;<br />

public class WerB<strong>in</strong>Ich<br />

{<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g args[])<br />

{<br />

if (args.length != 1)<br />

{<br />

System.err.pr<strong>in</strong>tln("Verwendung: java WerB<strong>in</strong>Ich ");<br />

System.exit(1);<br />

}<br />

try {<br />

345 Als Protokoll bezeichnet man die Menge aller Regeln, die nötig s<strong>in</strong>d, um e<strong>in</strong>en kontrollierten und<br />

e<strong>in</strong><strong>de</strong>utigen Verb<strong>in</strong>dungsaufbau, Datenaustausch und Verb<strong>in</strong>dungsabbau gewährleisten zu können. Die <strong>de</strong>rzeit<br />

<strong>in</strong> <strong>Java</strong> verfügbareb Netzwerkfähigkeiten basieren auf <strong>de</strong>n Internet-Protokollen TCP/IP (bzw. TCP/UDP)<br />

346 IP steht für Internet Protocol. Die 32-Bit-lange IP-Adresse besteht aus e<strong>in</strong>er Netzwerk-ID und e<strong>in</strong>er Host-ID.<br />

Die Host-ID gibt die Bezeichnung <strong>de</strong>s Rechners <strong>in</strong>nerhalb se<strong>in</strong>es eigenen Netzwerks an, die Netwerk-ID liefert<br />

die Bezeichnung <strong>de</strong>s Rechners.<br />

347 Anstelle <strong>de</strong>r IP-Adresse können bei Anwendungsprotokollen symbolische Namen verwen<strong>de</strong>t wer<strong>de</strong>n. Sie<br />

wer<strong>de</strong>n mit Hilfe von Namen-Servern <strong>in</strong> die zugehörige IP-Adresse übersetzt , bevor die Verb<strong>in</strong>dung aufgebaut<br />

wird. Das Doma<strong>in</strong> Name System (DNS) ordnet numerischen IP-Adressen sprechen<strong>de</strong> Namen zu.<br />

348 vgl. pr91100<br />

497

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!