%YXSVIR9PVMOI&ÔXXGLIV(MVO*VMWGLEPS[WOM -RLEPXPMGLIW0IOXSVEX%RHVIEW,SPYFIO *SVXKIWGLVMXXIRI4VSKVEQQMIVYRK F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,



Ähnliche Dokumente
%YXSV;SPJKERK1YWGLRIV -RLEPXPMGLIW0IOXSVEX7MPOI/ERIW %YXSQEXMWMIVYRK4VSKVEQQMIVYRK F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSV.ÚVKIR)RKIQERR -RLEPXPMGLIW0IOXSVEX)PQEV*YGLW F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, 7]WXIQEHQMRMWXVEXMSR

%YXSV6SPERH&EYGL F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, %HQMRMWXVEXMSR

%YXSV1MGLEIP6EMXL %YJPEKIZSQ7ITXIQFIV %HQMRMWXVEXMSR F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSVMRRIR&EVFEVE,MVWGL[EPH%RHVIE7GL[EV^ F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

Microsoft Windows Server 2003 W2003SPS. Autoren: Michael Raith, Dr. Hendrik Siegmund. Überarbeitete Ausgabe vom 10. August 2006.

Microsoft Exchange Server 2003 EXS2003A. Autor: Dr. Hendrik Siegmund. Überarbeitete Ausgabe vom 10. August 2006

%YXSV;SPJKERK7GLYP^'2-1'2) -RLEPXPMGLIW0IOXSVEX,ERW4IXIV.ELR'2-'2)1'7) F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIRJÚV%R[IRHIV

%YXSVMR8MRE;IKIRIV -RLEPXPMGLIW0IOXSVEX*VERO7GLEFIVX +VYRHPEKIR)(:QMX;MRHS[W YRH3JJMGI F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

)'(0;7*4%8 %YXSVMR0MRHE=SVO -RLEPXPMGLIW0IOXSVEX&EVFEVE,MVWGL[EPH F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, -RXIVRIX[[[LIVHX]SYHIEX [[[LIVHXFYWMRIWWHIEX


%YXSVMR8MRE;IKIRIV -RLEPXPMGLIW0IOXSVEX'LEVPSXXIZSR&VEYRWGL[IMK F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIR

%YXSV;SPJKERK7GLYP^'2-1'2) -RLEPXPMGLIW0IOXSVEX,ERW4IXIV.ELR'2-'2)1'7) %HQMRMWXVEXMSR F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

'%27- %YXSVIR(MVO*VMWGLEPS[WOM.SEGLMQ4EPPQIV +VYRHPEKIR4VSKVEQQMIVYRK F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSVIR.SEGLMQ4EPPQIV,IMOS7GLVÔHIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, %HQMRMWXVEXMSR

0-2 %YXSV1EVOYW*IMPRIV /SEYXSV%VRI&ÂYQPIV ºFIVEVFIMXIXI%YWKEFIZSQ.ERYEV 2IX^[IVOEHQMRMWXVEXMSR F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSV4IXIV8IMGL -RLEPXPMGLIW0IOXSVEX&IEXI1ENIXWGLEO -RXIKVMIVXI0ÔWYRKIRQMX3JJMGI<4 F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSV6EPJ/ÔLPIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIRHIV&MPHFIEVFIMXYRK JÚV;IF7IMXIR

%YXSV;SPJKERK1YWGLRIV -RLEPXPMGLIW0IOXSVEX&IEXI1ENIXWGLEO F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, %YXSQEXMWMIVYRK4VSKVEQQMIVYRK

%YXSV4IXIV8VSTJ/EVPWVYLI +VYRHPEKIR'SQTYXIV%MHIH(IWMKR F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSVIR(*VMWGLEPS[WOM->MQQIVQERR 3FNIOXSVMIRXMIVXI4VSKVEQQMIVYRK F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSVIR&EVFEVE,MVWGL[EPH;SPJ;MPG^IO -RLEPXPMGLIW0IOXSVEX*VERO7GLEFIVX %YJPEKIZSQ.ERYEV +VYRHPEKIR F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, &SHIRLIMQ

Preisindizes für Bauwerke im Freistaat Sachsen

Anmeldung und Registrierung 1.1 So registrieren Sie sich für den Onlineshop So melden Sie sich im Onlineshop an

2(&(: %YXSVIR)PQEV*YGLW4'04 -RLEPXPMGLIW0IOXSVEX6IRÇ;SVQ (EXIRFEROIRX[MGOPYRK(EXIREYWXEYWGL YRH:IV[EPXYRKZSR +IWXEPXYRKWIPIQIRXIR

WXPS. Windows XP Professional - Systembetreuer: Workstation WXPS Autoren: Werner Hand, Dr. Hendrik Siegmund, Dr.

Laser in der Materialbearbeitung Forschungsberichte des IFSW

&6%5$66 &RPSDFW3&,:LGH8OWUD6&6,+RVWDGDSWHU &6%5$66 $QRUGQXQJ6WHFNYHUELQGHU

$XV]XJDXVÄ6R]LDOUDXPDQDO\VH³

Networking. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Networking. Motivation und Grundlagen Klasse Socket SMTP-Protokoll Exceptions. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Einlagensicherungssysteme Ökonomische Analyse unterschiedlicher institutioneller Ausgestaltungsformen

%YXSVIRÃ;SPJKERKÃ1YWGLRIVÃ%RHVIEÃ7GL[EV^Ã -RLEPXPMGLIWÃ0IOXSVEXÃ*VEROÃ7GLEFIVXÃ *SVXKIWGLVMXXIRIÃ%R[IRHYRKIRÃ

%YXSV6IRÇ;SVQ -RLEPXPMGLIW0IOXSVEX)PQEV*YGLW F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, 7]WXIQEHQMRMWXVEXMSR

&00 'DV3%6DUFKLYHDGGRQ5 GHU (LQNDXIVEHOHJH %HQXW]HUKDQGEXFK .RPSDWLEHO]X6$355HOHDVH 9HUVLRQ. 6WDQG0lU]

Referat: Netzwerkprogrammierung in Java

Beispiel senden

kommt. Deshalb bemüht sich Satan, dieses Buch für die Menschen versiegelt

Viele, die die Offenbarung

%YXSVIR1EVXMR(EYWGL6SFIVX.IHPMXWGLOE 1MGLEIP6EMXL(V,IRHVMO7MIKQYRH (V;SPJVEQ8MX^0]HME:SPP

%YXSV/EVP,IMR^;EGLPIV -RLEPXPMGLIW0IOXSVEX9PVMOI&ÔXXGLIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, *SVXKIWGLVMXXIRI4VSKVEQQMIVYRK

%YXSV)PQEV*YGLW -RLEPXPMGLIW0IOXSVEX0IS7GLÚXX'EVHEYR F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSV/EVP,IMR^;EGLPIV -RLEPXPMGLIW0IOXSVEX(MVO*VMWGLEPS[WOM.SEGLMQ4EPPQIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIR4VSKVEQQMIVYRK

Java und Netzwerkkommunikation

Gott ist liebevoll, vergebungsbereit,

Anlage EÜR. Einnahmenüberschussrechnung nach 4 Abs. 3 EStG für das Kalenderjahr 2011 Beginn Ende

%YXSVIR,1SX^6/ÔLPIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, >IMGLRYRKIR(MEKVEQQI4PÂRI

<4;-2<4-) %YXSVIR'LEVPSXXIZSR&VEYRWGL[IMK3VXVYR+VMPP &EVFEVE,MVWGL[EPH%RHVIE7GL[EV^ -RLEPXPMGLIW0IOXSVEX4IXIV;MIW

Transmission Control Protocol (TCP)

Baldachin Bern. Eröffnung Mai 2008

%YXSVIR9PVMOI&ÔXXGLIV(MVO*VMWGLEPS[WOM F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, %YXSQEXMWMIVYRK4VSKVEQQMIVYRK

Barbara Hofmann THE BEAUTY TOOLS COMPANY. BEAUTY TOOLS and Make-up Guide

Herzlich willkommen auf unserer neuen Internetseite

Xpert Europäischer ComputerPass. Ulrike Böttcher, Charlotte von Braunschweig, Dirk Frischalowski, Konrad Stulle, Tina Wegener

Socket-Programmierung unter Java

Verbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2

RUNDSCHREIBEN DIE STEUERBERATER

ZUKUNFTSPLANUNG BEWEGT... MENSCHEN, ORGANISATIONEN, REGIONEN 14. bis 16. November 2013 in Hamburg

Client-Server TCP/IP - Kodierung

%YXSV6EPJ/ÔLPIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIR(IWOXST4YFPMWLMRK

'LH:LHGHUNXQIW-HVX. Auferstehung der Gläubigen

3URGXNWLQIRUPDWLRQ. Dokument Nr Edition 03/2001 &6)/87( 8OWUD6&6,+RVWDGDSWHU

%YXSV4IXIV8VSTJ/EVPWVYLI F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, %YJFEYOYVW

Netzwerkprogrammierung

das unabhängige CAD-Portal für Online- Hilfe, Meinungsaustausch sowie Tipps&Tricks rund um die Autodesk-Produkte

%YXSVMRÃ9PVMOIÃ&ÔXXGLIVÃ -RLEPXPMGLIWÃ0IOXSVEXÃ(MVOÃ*VMWGLEPS[WOMÃ %YXSQEXMWMIVYRKÃ4VSKVEQQMIVYRKÃ -RXIVRIXÃÃ[[[LIVHX]SYHIEXÃ Ã [[[LIVHXFYWMRIWWHIEXÃ

-RXIVRIX[[[LIVHX]SYHIEXGL [[[LIVHXFYWMRIWWHIEXGL [[[LIVHXZLWHIEX

%YXSV6EPJ/ÔLPIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, *SVXKIWGLVMXXIRI%R[IRHYRKIR

-28,810 F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

Advanced Network Programming

%YXSV4IXIV;MIW -RLEPXPMGLIW0IOXSVEX7EFMRI7TMI½ 49%RWTVYGLWZSPPIW%YW[IVXIRZSR OSQTPI\IR(EXIRQMX)\GIP F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

Schreiben nach Hören Schreiben nach Gehör Lesen durch Schreiben

5. Anleihebedingungen und Garantie

Socket-Programmierung unter Java


%YXSV1/SVXIRNERR /SEYXSV%3FIVLSJ F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, 7SRHIVLEYTXFYGLZSVKÂRKI

Verteilte Systeme - Java Networking (Sockets) -

%YXSVIR%RHVIE7GL[EV^4IXIV;MIW F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

%YXSV6EPJ/ÔLPIV -RLEPXPMGLIW0IOXSVEX&IEXI1ENIXWGLEO F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIR&MPHFIEVFIMXYRK

HOCHMOMENT- SCHRAUBTECHNIK

Was ist ein Netzwerk? Informatik B - Objektorientierte Programmierung in Java. Vorlesung 22: Netzwerkprogrammierung/ Kommunikation 1.

%YXSV6EPJ/ÔLPIV -RLEPXPMGLIW0IOXSVEX+ISVK;IMLIVIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, +VYRHPEKIR(IWOXST4YFPMWLMRK

Netzwerkprogrammierung & Threads

%YXSV'LVMWXMER1ÚRWXIV

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

+<43<4Ã %YXSV/SRVEH7XYPPI -RLEPXPMGLIW0IOXSVEX*VERO7GLEFIVX +VYRHPEKIR)(:QMX;MRHS[W<4 YRH3JJMGI<4 F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

der Ausschuss für Gesundheit des Deutschen Bundestages hat beschlossen, eine öffentliche Anhörung zum

das unabhängige CAD-Portal für Online- Hilfe, Meinungsaustausch sowie Tipps&Tricks rund um die Autodesk-Produkte

)'(0%1 %YXSVMRRIR'LEVPSXXIZSR&VEYRWGL[IMK3VXVYR+VMPP -RLEPXPMGLIW0IOXSVEX7EFMRI7TMI½ F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF,

Beispiel Time Client/Server

:HUGHQ ZLU QDFK GHP JHULFKWHW ZDV ZLU LQ GLHVHP /HEHQ JHWDQ KDEHQ RGHU QDFK GHPZDVZLUZlKUHQGGHU-DKUHWXQ"

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java

Dokument Nr Edition 03/2001. CX1-BAND * Dual CAN Controller

MASTER CLASS. Michael Schwimmer. Excel VBA. Einstieg für Anspruchsvolle ADDISON-WESLEY. [ in Kooperation mit ]

%YXSV(MVO*VMWGLEPS[WOM F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, *SVXKIWGLVMXXIRI4VSKVEQQMIVYRK

Client-Server TCP/IP - Kodierung

Verteilte Systeme - Java Networking (Sockets) 2 -

Bauknecht AG, Industriestrasse 36, 5600 Lenzburg,

Transkript:

.%:* %YXSVIR9PVMOI&ÔXXGLIV(MVO*VMWGLEPS[WOM -RLEPXPMGLIW0IOXSVEX%RHVIEW,SPYFIO %YJPEKIZSQ2SZIQFIV F],)6(8:IVPEKJÚV&MPHYRKWQIHMIR+QF, &SHIRLIMQ -RXIVRIX[[[LIVHX]SYHIEXGL [[[LIVHXFYWMRIWWHIEXGL [[[LIVHXZLWHIEX %PPI 6IGLXI ZSVFILEPXIR /IMR 8IMP HIW ;IVOIW HEVJ MR MVKIRHIMRIV*SVQ(VYGO*SXSOSTMI1MGVSJMPQSHIVIMRIQ ERHIVIR :IVJELVIR SLRI WGLVMJXPMGLI +IRILQMKYRK HIW,IVEYWKIFIVW VITVSHY^MIVX SHIV YRXIV :IV[IRHYRK IPIOXVSRMWGLIV 7]WXIQI ZIVEVFIMXIX ZIVZMIPJÂPXMKX SHIV ZIVFVIMXIX[IVHIR (MIWI 9RXIVPEKI [YVHI QMX KVS½IV 7SVKJEPX IVWXIPPX YRH KITVÚJX8VSX^HIQ OÔRRIR *ILPIV RMGLX ZSPPOSQQIR EYW KIWGLPSWWIR [IVHIR :IVPEK,IVEYWKIFIV YRH %YXSVIR OÔRRIRJÚVJILPIVLEJXI%RKEFIRYRHHIVIR*SPKIR[IHIV IMRI NYVMWXMWGLI :IVERX[SVXYRK RSGL MVKIRHIMRI,EJXYRK ÚFIVRILQIR (MI &MPHYRKWQIHMIR HIW,)6(8:IVPEKW IRXLEPXIR 0MROW F^[ :IV[IMWI EYJ-RXIVRIXWIMXIR ERHIVIV%RFMIXIV %YJ -RLEPX YRH +IWXEPXYRK HMIWIV %RKIFSXI LEX HIV,)6(8 :IVPEK OIMRIVPIM )MRJPYWW,MIVJÚV WMRH EPPIMRI HMI NI[IM PMKIR%RFMIXIVZIVERX[SVXPMGL *AVA 3$+ V *SVXKIWGLVMXXIRI4VSKVEQQMIVYRK Ã Ã Ã F7X!$B

I NHALTSVERZEICHNIS Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung 1 Spezielle Streams und Serialisierung...6 1.1 Einführung... 6 1.2 ObjectStreams... 6 1.3 Probleme der Serialisierung... 10 1.4 ZipStreams... 14 1.5 Weitere Streams... 18 1.6 Übung... 18 2 Multithreading...20 2.1 Einführung... 20 2.2 Die Klasse Thread... 21 2.3 Das Interface Runnable... 29 2.4 Prioritäten und Gruppen von Threads... 33 2.5 Synchronisation... 3 4 2.6 Monitore... 37 2.7 Deadlocks... 41 2.8 Datenaustausch zwischen Threads... 42 2.9 Übung... 44 3 Netzwerkzugriffe...46 3.1 Grundlagen... 46 3.1.1 Netzwerke und Protokolle... 46 3.1.2 Adressierung... 48 3.2 Klassen für die Speicherung von Internetadressen... 50 3.2.1 Internetadressen... 50 3.2.2 Die Klassen URI und URL... 52 3.3 Socket-Programmierung... 55 3.3.1 Client-Sockets... 56 3.3.2 Server-Socket... 58 3.3.3 Chat-Verbindung... 61 3.4 Anwendungsbeispiel: Mail versenden... 62 3.4.1 Mail über eine Socket-Verbindung senden... 62 3.4.2 Mail über eine URL-Verbindung senden... 64 3.5 Das JavaMail API... 67 3.6 Übung... 68 4 New I/O APIs...70 4.1 Einführung... 70 4.2 Puffermanagement... 70 4.2.1 Puffer... 70 4.2.2 ByteBuffer und Memory Mapped IO... 73 4.3 Character-Set-Codierung... 76 4.4 Channels (Kanäle) und Selectors... 78 4.5 Übung... 82 5 Reguläre Ausdrücke...84 5.1 Grundlagen... 84 5.2 Mustererkennung mit regulären Ausdrücken... 85 5.3 Optionen für reguläre Ausdrücke... 88 5.3.1 Zeichenklassen verwenden... 88 5.3.2 Wiederholungen angeben... 89 5.3.3 Verankerung von Mustern... 91 5.3.4 Alternativen angeben... 92 5.3.5 Splitten von Zeichenfolgen...93 5.3.6 Gruppieren mit Klammern...93 5.4 Regeln für die Verwendung regulärer Ausdrücke... 96 5.5 Ersetzen von Textteilen mit regulären Ausdrücken... 96 5.5.1 Substitution verwenden...96 5.5.2 Stückweises Ersetzen...97 5.5.3 Zeichen in die Zeichenfolge einfügen...98 5.5.4 Zurücksetzen des Matcher-Objekts...99 5.6 Übung... 100 6 Reflection...102 6.1 Grundlagen... 102 6.2 Die Klasse Object... 103 6.3 Die Klasse Class... 103 6.4 Das Package java.lang.reflect... 104 6.4.1 Methoden einer Klasse ermitteln und aufrufen...104 6.4.2 Konstruktoren einer Klasse ermitteln...108 6.4.3 Felder einer Klasse ermitteln und auslesen...108 6.4.4 Exceptions einsetzen...110 6.4.5 Dynamisches Laden von Klassen über Interfaces...110 6.5 Beispiel für die Anwendung des Reflection-APIs... 112 6.6 Übung... 113 7 Logging...114 7.1 Einführung... 114 7.2 Prinzip... 115 7.3 Einstellungen für das Logging... 115 7.3.1 Level...115 7.3.2 Logger...116 7.3.3 Handler...118 7.3.4 Formatter...118 7.3.5 Die Properties-Datei...119 7.4 Standardeigenschaften ändern... 120 7.4.1 Logging-Konfiguration im Quellcode...120 7.4.2 Logging-Konfiguration über eine eigene Properties-Datei...121 7.5 Übung... 122 8 Preferences (Voreinstellungen)...124 8.1 Einführung... 124 8.2 Voreinstellungen... 124 8.3 Hierarchische Struktur der Preferences... 127 8.4 Auf Änderungen der Preferences reagieren... 130 8.5 Preferences exportieren und importieren... 133 8.6 Übung... 134 9 Sicherheit...136 9.1 Einführung... 136 9.2 Sicherheit von Java-Programmen... 137

Inhaltsverzeichnis I 9.3 Klassenlader...138 9.4 Sicherheitsmanager (SecurityManager )...139 9.5 Policy-Dateien (Richtliniendateien)...142 9.6 Verschlüsselung...146 9.6.1 Fingerabdruck (Message-Digest)...146 9.6.2 Digitale Signaturen...149 9.6.3 Authentifizierung mit Zertifikaten...152 9.7 Übung...155 10 JNI - Java Native Interface...156 10.1 Grundlagen...156 10.2 Aufruf nativer Funktionen...157 10.2.1 Erstellen des Java-Programms...157 10.2.2 Erstellen der Header-Datei...159 10.2.3 Entwicklung der nativen Programmbibliothek...160 10.2.4 Test der nativen Bibliothek...164 10.3 Datentypen und Zugriff auf Strings...165 10.4 Lokale und globale Referenzen...166 10.5 Zugriff auf Methoden und Felder der JVM...167 10.6 Fehlerbehandlung...170 10.7 Invocation-API...172 10.8 Übung...172 11 Remote Method Invocation...174 11.1 Einführung in RMI...174 11.2 Die RMI-Architektur...174 11.2.1 Besonderheiten des verteilten Objektmodells von Java...175 11.2.2 Parameterübergabe bei entfernten Methoden...176 11.2.3 Anwendungsfälle für RMI...176 11.3 Entwicklung einer RMI-Anwendung...176 11.3.1 Definition des Interfaces für das Remote-Objekt...177 11.3.2 Entwicklung der Klasse für das Remote-Objekt...178 11.3.3 Erzeugen des Stubs und des Skeletons durch den RMI-Compiler...179 11.3.4 RMI-Registrierung starten...180 11.3.5 Registrierung des Remote-Objekts...181 11.3.6 Remote-Objekt durch Client- Anwendung aufrufen...184 11.3.7 Factory-Klassen...185 11.4 Dynamisches Laden von Klassen...185 11.4.1 Security-Manager installieren...186 11.4.2 Policy-Dateien...186 11.4.3 Dynamisches Laden anhand eines Beispiels...187 11.5 Remote Object Activation...188 11.5.1 Entwicklung des Remote-Objekts...188 11.5.2 Aufruf des Aktivierungsdienstes...190 11.5.3 Registrierung des Remote-Objekts...191 11.5.4 Remote-Objekt durch Client- Anwendung aufrufen...193 11.6 Übung...193 12 JDBC - Java Database Connectivity...194 12.1 Grundlagen...194 12.2 Beispieldatenbank installieren...197 12.2.1 InterBase/FireBird als SQL Client/ Server-System... 197 12.2.2 Download und Installation des InterBase-Servers... 197 12.2.3 Start, Test und Beenden des InterBase-Servers... 198 12.2.4 Installation und Test des InterClients... 199 12.2.5 Aufbau der verwendeten Tabellen... 200 12.3 Aufbau einer Datenbankverbindung...201 12.3.1 Laden des Treibers... 202 12.3.2 Verbindung zur Datenbank herstellen... 203 12.4 SQL-Anweisungen ausführen...205 12.4.1 Einfache SQL-Anweisungen... 205 12.4.2 Vorbereitete SQL-Anweisungen... 206 12.4.3 Callable Statements und Stored Procedures... 208 12.5 Auswerten der Ergebnismengen...209 12.5.1 Konfigurieren der Ergebnismenge... 209 12.5.2 Navigieren in der Ergebnismenge... 210 12.5.3 Werte der Ergebnismenge ermitteln... 211 12.5.4 Update der Ergebnismenge... 212 12.5.5 Nullwerte... 213 12.6 Auslesen von Metadaten...214 12.6.1 Datenbankinformationen ermitteln... 214 12.6.2 Informationen über eine Ergebnismenge... 214 12.7 Transaktionen...216 12.8 Datenbankzugriff über Applets...218 12.9 Debuggen von JDBC-Anwendungen...219 12.10 Übung...219 A Anhang - Web-Server installieren...220 A.1 Die Web-Serber Xitami, Apache...220 A.1.1 Xitami... 220 A.1.2 Arbeiten mit Xitami... 221 A.1.3 Apache... 222 B Anhang - Datenbanken und SQL...224 B.1 Aufbau und Funktion einer Datenbank...224 B.1.1 Datenbankbegriffe... 224 B.2 Einführung in SQL...227 B.2.1 Sprachumfang von SQL... 228 B.2.2 Die Datendefinitionssprache DDL... 228 B.2.3 Die Abfragesprache DQL... 229 B.2.4 Datenaktualisierung mit DML... 232 B.2.5 Der Join... 233 Stichwortverzeichnis...234

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung 3 Netzwerkzugriffe,Q GLHVHP.DSLWHO HUIDKUHQ 6LH Æ ZLH 6LH PLW -DYD DXI GDV 1HW]ZHUN ]XJUHLIHQ Æ ZLH 6LH &OLHQW XQG 6HUYHU6RFNHWV SURJUDPPLHUHQ Æ ZLH 6LH PLW HLQHP -DYD3URJUDPP (0DLOV YHUVFKLFNHQ N QQHQ 9RUDXVVHW]XQJHQ 9.HQQWQLVVH LQ GHU 3URJUDPPLHUXQJ YRQ 7KUHDGV 3.1 Grundlagen 3.1.1 Netzwerke und Protokolle $OV 1HW]ZHUN ZHUGHQ YHUEXQGHQH &RPSXWHU EH]HLFKQHW GLH PLWHLQDQGHU NRPPXQL]LHUHQ N QQHQ,P /DXIH GHU UDVDQWHQ (QWZLFNOXQJ GHU OHW]WHQ -DKUH KDEHQ &RPSXWHUQHW]H VHKU DQ %HGHXWXQJ XQG (LQVDW]EUHLWH JHZRQ QHQ 'DV EHGHXWHQGVWH XQG EHNDQQWHVWH &RPSXWHUQHW] LVW GDV,QWHUQHW $XFK LQQHUKDOE GHU 8QWHUQHKPHQ ZHU GHQ JU WHQWHLOV &RPSXWHUQHW]H HLQJHVHW]W GLH ] % GHQ IROJHQGHQ $XIJDEHQ GLHQHQ ; (V ZHUGHQ 'DWHQ EHU GDV,QWUDQHW YHU IIHQWOLFKW ; (LQH ]HQWUDOH 'DWHQEDQN ZLUG YRQ PHKUHUHQ 0LWDUEHLWHUQ JHQXW]W ; 'DWHQ XQG 6RIWZDUH ZHUGHQ DXI HLQHP DOOHQ 0LWDUEHLWHUQ ]XJlQJOLFKHQ /DXIZHUN YHUI JEDU JHPDFKW ; (LQ 'UXFNHU ZLUG I U PHKUHUH 0LWDUEHLWHU DQ HLQHU ]HQWUDOHQ 6WHOOH EHUHLWJHVWHOOW -DYD LVW I U GLH 1HW]ZHUNSURJUDPPLHUXQJ VHKU JXW JHHLJQHW GD HV PLW VSH]LHOOHQ.ODVVHQ GDI U DXVJHVWDWWHW LVW GLH LQ GHQ %LEOLRWKHNHQ java.net javax.net XQG javax.net.ssl ]XVDPPHQJHIDVVW VLQG 8P GHQ 0H FKDQLVPXV GHU VRIWZDUHVHLWLJHQ 9HUELQGXQJ YRQ &RPSXWHUQ EHVVHU ]X YHUVWHKHQ ZLUG LP )ROJHQGHQ GHU $XI EDX GHV 6FKLFKWHQPRGHOOV HLQHV &RPSXWHUQHW]HV DQKDQG GHV 26,5HIHUHQ]0RGHOOV HUOlXWHUW 'DV 26, 5HIHUHQ]PRGHOO ZXUGH YRQ GHU,62,QWHUQDWLRQDO 6WDQGDUGV 2UJDQL]DWLRQ PLW GHP =LHO HQWZLFNHOW GDVV YHU VFKLHGHQH 5HFKQHU XQG *HUlWH LQ HLQHP 1HW]ZHUN EHU VWDQGDUGLVLHUWH 3URWRNROOH PLWHLQDQGHU NRPPXQL]LHUHQ N QQHQ Anwendungsschicht Darstellungsschicht Sitzungsschicht Transportschicht Netzwerkschicht Leitungsschicht Physikalische Schicht Anwendungsprotokolle z. B. HTTP, FTP, SMTP TCP oder UDP IP-Protokoll (z. B. ICMP oder IP) Anwendungsschicht Darstellungsschicht Sitzungsschicht Transportschicht Netzwerkschicht Leitungsschicht Physikalische Schicht physischer Datentransfer Protokoll (Ethernet, FDDI, ATM...) Das OSI-Schichten-Modell (Open System Interconnection)

Netzwerkzugriffe 3 'DV NODVVLVFKHV 26,5HIHUHQ]0RGHOO EHVFKUHLEW VFKHPDWLVFK GLH.RPPXQLNDWLRQ ]ZLVFKHQ 5HFKQHUQ LQ HLQHP 1HW]ZHUN 'D]X ZLUG MHGHU 5HFKQHU LQ VLHEHQ 6FKLFKWHQ HLQJHWHLOW ZREHL MHGHU 6FKLFKW VSH]LHOOH $XIJDEHQ EHL GHU 'DWHQ EHUWUDJXQJ ]XJHRUGQHW VLQG 'LH XQWHUHQ EHLGHQ 6FKLFKWHQ HQWVSUHFKHQ GHU +DUGZDUH GHU 5HFKQHU 'LH GDU EHU OLHJHQGHQ 6FKLFKWHQ VLQG 6RIWZDUH6FKLFKWHQ %HL HLQHU 'DWHQ EHUWUDJXQJ HLQHV $QZHQGXQJV SURJUDPPV LQ GHU $QZHQGXQJVVFKLFKW ZHUGHQ GLH 'DWHQ YRQ GHU REHUVWHQ 6FKLFKW ELV ]XU XQWHUVWHQ 6FKLFKW GXUFKJHUHLFKW -HGH 6FKLFKW I KUW GDEHL LKUH VSH]LHOOHQ $XIJDEHQ DXV ZLH ] % 9HUVFKO VVHOXQJ GHU 'DWHQ +HUVWHOOHQ GHU 9HUELQGXQJ ]XP =LHOUHFKQHU RGHU GDV %HUHFKQHQ GHU 3U IVXPPH 'LH XQWHUVWH 6FKLFKW VFKLFNW GLH 'DWHQ LQ 3DNHWHQ YHUSDFNW DQ GLH XQWHUVWH 6FKLFKW GHV DQGHUHQ 5HFKQHUV 'LHVH HQWSDFNW GLH 'DWHQ XQG UHLFKW VLH ]X GHQ REHUHQ 6FKLFKWHQ GXUFK 'DEHL ZHUGHQ GLH JOHLFKHQ 6FKULWWH GXUFKJHI KUW ZLH EHLP 6HQGHQ QXU LQ XPJHNHKUWH U5HLKHQIROJH 'HU =LHOUHFKQHU H PSIlQJW GDEHL QLFKW QXU GLH 'DWHQ,Q $EKlQJLJNHLW YRP YHUZHQGHWHQ 3URWRNROO VHQGHW HU 4XLWWXQJHQ I U NRUUHNW EHUWUDJHQH 'DWHQ RGHU )HKOHUPHOGXQJHQ DQ GHQ 4XHOOUHFKQHU 0LWXQWHU ILQGHQ 6LH $EZHLFKXQJHQ LQ GHQ 'DUVWHOOXQJHQ GHV 26,5HIHUHQ]0RGHOOV,Q HLQLJHQ 'DUVWHOOXQJHQ VLQG GLH 6FKLFKWHQ QLFKW YRUKDQGHQ 'DV 6FKLFKWHQPRGHOO ZLUG DXFK YHUHLQIDFKW LQ YLHU 6FKLFKWHQ GDUJH VWHOOW,Q GHU $EELOGXQJ KDEHQ GLH 6FKLFKWHQ GLH GDEHL ]XVDPPHQJHIDVVW ZHUGHQ HLQHQ JHULQJHUHQ $EVWDQG ]XHLQDQGHU =ZHL &RPSXWHU N QQHQ,QIRUPDWLRQHQ QXU DXI GHU JOHLFKHQ (EHQH 6FKLFKW DXVWDXVFKHQ %HLVSLHOVZHLVH ZLUG HLQH 0DLO YRQ GHU $QZHQGHUVFKLFKW DEJHVFKLFNW XQG ZLUG YRQ HLQHP DQGHUHQ 5HFKQHU LQ GHU $QZHQGHUVFKLFKW HPSIDQJHQ ) U GHQ 'DWHQDXVWDXVFK PXVV HV EHVWLPPWH 9RUVFKULIWHQ JHEHQ GLH GHQ $XIEDX XQG $EEDX GHU 9HUELQGXQJ XQG GHQ 'DWHQDXVWDXVFK VHOEVW UHJOHPHQWLHUHQ 'LHVH ZHUGHQ DOV 3URWRNROOH EH]HLFKQHW 'LH 3UR WRNROOH VHW]HQ ZLHGHUXP DXI HLQHU EHVWLPPWHQ 6FKLFKW DXI 'DV 3URWRNROO ZHOFKHV VLFK ]XU.RPPXQLNDWLRQ YHUQHW]WHU &RPSXWHU GXUFKJHVHW]W KDW LVW 7&3,3 7UDQV PLVVLRQ &RQWURO 3URWRFRO,QWHUQHW 3URWRFRO (V ZLUG VRZRKO XQWHU :LQGRZV DOV DXFK XQWHU /LQX[ DP KlXILJV WHQ YHUZHQGHW $XFK LQ -DYD EDVLHUW GLH 1HW]ZHUNIlKLJNHLW DXI GLHVHP 3URWRNROO RGHU DXI 8'3 8VHU 'DWDJUDP 3URWRFRO 'LH 8QWHUVFKLHGH ]ZLVFKHQ 7&3 XQG 8'3 VLQG ; 7&3 LVW YHUELQGXQJVRULHQWLHUW XQG VWHOOW EHU GDV,33URWRNROO HLQH VLFKHUH 3XQNW]X3XQNW9HUELQGXQJ ]ZLVFKHQ ]ZHL &RPSXWHUQ KHU (V JHZlKUOHLVWHW HLQHQ IHKOHUIUHLHQ 'DWHQWUDQVSRUW ; 8'3 LVW YHUELQGXQJVORV XQG GDV $QZHQGXQJVSURJUDPP PXVV JHZlKUOHLVWHQ GDVV GLH DEJHVFKLFNWHQ 3DNHWH IHKOHUIUHL EHLP (PSIlQJHU DQNRPPHQ $XFK XP GLH ULFKWLJH 5HLKHQIROJH GHU 3DNHWH PXVV VLFK GDV 3URJUDPP VHOEVW N PPHUQ 9HUELQGXQJVRULHQWLHUW KHL W KLHU GDVV ZlKUHQG GHU hehuwudjxqj HLQH 9HUELQGXQJ ]ZLVFKHQ GHQ 5HFKQHUQ EH VWHKW %HL HLQHU YHUELQGXQJVORVHQ hehuwudjxqj ZLUG HLQ 3DNHW DEJHVFKLFNW RKQH HLQH 5 FNDQWZRUW DE]XZDU WHQ *U HUH 'DWHQPHQJHQ ZHUGHQ ]ZLVFKHQ &RPSXWHUQ LQ PHKUHUHQ NOHLQHUHQ 3DNHWHQ EHUWUDJHQ 7&3 JHZlKU OHLVWHW GDVV GLH ULFKWLJH 5HLKHQIROJH HLQJHKDOWHQ ZLUG XQG GDVV DOOH 3DNHWH DQNRPPHQ =XP %HLVSLHO ZLUG HLQ 3DNHW HUQHXW JHVHQGHW ZHQQ HV EHL GHU hehuwudjxqj YHUORUHQ JHJDQJHQ LVW,Q -DYD JLEW HV ]ZHL.ODVVHQ PLW GHUHQ +LOIH GDV 8'33URWRNROO JHQXW]W ZHUGHQ NDQQ DatagramPacket XQG DatagramSocket GLH LQ GHU 8QWHUODJH QLFKW ZHLWHU EHKDQGHOW ZHUGHQ Notizen

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung 3.1.2 Adressierung IP-Adressen und Ports 9RUDXVVHW]XQJ I U HLQ IXQNWLRQLHUHQGHV 1HW]ZHUN LVW HLQH HLQGHXWLJH $GUHVVLHUXQJ GHU 5HFKQHU 8P GLH 'DWHQ ]X YHUVFKLFNHQ PXVV GLH $GUHVVH GHV (PSIlQJHUV DQJHJHEHQ ZHUGHQ 0LW GHQ 'DWHQ ZLUG GLH $GUHVVH GHV $EVHQGHUV JHVHQGHW XP GHQ (PSIlQJHU ]X LQIRUPLHUHQ ZRKHU GLH 'DWHQ NRPPHQ 8QWHU 7&3,3 ZLUG GHU]HLW HLQH %LW,3$GUHVVH YHUZHQGHW 6LH EHVWHKW DXV ]ZHL 7HLOHQ GHU 1HW]ZHUN DGUHVVH 1HW]ZHUNQXPPHU XQG GHU $GUHVVH GHV 5HFKQHUV +RVW,' -H QDFK.ODVVH $ ELV ( LVW GHU $QWHLO GHU 1HW]ZHUNDGUHVVH DQ GHU *HVDPWDGUHVVH JU HU RGHU NOHLQHU hehu HLQH 6XEQHW0DVNH ZLUG IHVWJHOHJW ZLH JUR GHU $QWHLO GHV 1HW]ZHUNV XQG GHV +RVWV DQ GHU $GUHVVH LVW (LQH YROOVWlQGLJH,3$GUHVVH KDW GLH IROJHQ GH 6WUXNWXU.ODVVHQELW 1HW]ZHUN +RVW$GUHVVH %HLVSLHO 191.162.10.123 -DYD XQWHUVW W]W VHLW GHU 9HUVLRQ -6( DXFK GHQ QHXHQ,36WDQGDUG,3Y,QWHUQHW 3URWRFRO YHUVLRQ GHU OlQJHUH,3$GUHVVHQ YHUZHQGHW $OOH $GUHVVHQ LQQHUKDOE HLQHV 1HW]ZHUNHV P VVHQ HLQGHXWLJ VHLQ :HUGHQ PHKUHUH 1HW]ZHUNH PLWHLQDQGHU YHUEXQGHQ PXVV GLH 1HW]ZHUNDGUHVVH LQQHUKDOE GHV 9HUEXQGV HLQGHXWLJ VHLQ ] % LP,QWHUQHW 'LH 9HUJDEH GHU,3$GUHVVHQ ZLUG LQ GHU 5HJHO YRP 6\VWHPDGPLQLVWUDWRU YRUJHQRPPHQ (V JLEW HLQH VSH]LHOOH,3$GUHVVH I U GHQ ORNDOHQ $UEHLWVSODW] HLJHQHQ 3& GLH DXFK XQWHU GHP $OLDV localhost DQJHVSURFKHQ ZHUGHQ NDQQ 127.0.0.1 ) U GLH 9HUZHQGXQJ LQ SULYDWHQ 1HW]HQ ZLH ] % GHP,QWUDQHW ILUPHQLQWHUQHV,QWHUQHW VLQG *UXSSHQ YRQ,3$GUHVVHQ UHVHUYLHUW 10.0.0.0-10.255.255.255.ODVVH $ 172.16.0.0-172.31.255.255.ODVVH % 192.168.0.0-192.168.255.255.ODVVH & :HLWHUH,QIRUPDWLRQHQ HUKDOWHQ 6LH LP 5)& KWWSZZZUIFQHW Die Datei hosts,vw GLH $QJDEH YRQ localhost EHLVSLHOVZHLVH QLFKW P JOLFK NDQQ GLH =XRUGQXQJ HLQHV 1DPHQV ]X HLQHU,3 $GUHVVH LQ GHU 'DWHL +RVWV RKQH 'DWHLHUZHLWHUXQJ YRUJHQRPPHQ ZHUGHQ,Q :LQGRZV ILQGHQ 6LH GLH 'DWHL LP :LQGRZV9HU]HLFKQLV RGHU HLQHP 8QWHUYHU]HLFKQLV GDYRQ 'LH 'DWHL KRVWVVDP VWHOOW LQ HLQLJHQ )loohq HLQH %HLVSLHO+RVWV'DWHL GDU VDP VDPSOH %HLVSLHO 8QWHU /LQX[ ILQGHQ 6LH GLHVH 'DWHL LP 9HU]HLFKQLV HWF )DOOV GHU IROJHQGH (LQWUDJ QRFK QLFKW YRUKDQGHQ LVW I JHQ 6LH GLHVHQ LQ HLQHU QHXHQ =HLOH KLQ]X 127.0.0.1 localhost 6LH KDEHQ DQ GLHVHU 6WHOOH DXFK GLH 0 JOLFKNHLW ZHLWHUHQ RIW YHUZHQGHWHQ,3$GUHVVHQ $OLDVQDPHQ V\PER OLVFKH 1DPHQ ]X]XRUGQHQ GD VLFK GLHVH OHLFKWHU PHUNHQ ODVVHQ *HEHQ 6LH GD]X GLH,3$GUHVVH XQG GHQ $OLDVQDPHQ GXUFK HLQ RGHU PHKUHUH /HHU]HLFKHQ JHWUHQQW DQ $XFK LP,QWHUQHW ZHUGHQ V\PEROLVFKH 1DPHQ I U GLH,3$GUHVVHQ GHU =LHOUHFKQHU YHUZHQGHW GLH DOV 'RPDLQ 1DPHQ EH]HLFKQHW ZHUGHQ ] % ZZZKHUGWFRP 'DV '16 'RPDLQ 1DPH 6\VWHP ZXUGH HLQJHI KUW XP GHQ 8PJDQJ PLW GHU QLFKWV VDJHQGHQ,3$GUHVVH ]X YHUHLQIDFKHQ 'HU 'RPDLQ1DPH6HUYHU GHU PHLVW EHLP,QWHUQHW3URYLGHU VWHKW OLHIHUW GLH ]XP 'RPDLQ1DPHQ JHK ULJH,3$GUHVVH DQ GHQ %URZVHU ]XU FN 'DPLW NDQQ GLH 9HUELQGXQJ ]XP =LHOVHUYHU EHU GLH,3$GUHVVH DXIJHEDXW ZHUGHQ Client und Server 2IW ZHUGHQ GLH 9HUELQGXQJHQ ]ZLVFKHQ ]ZHL &RPSXWHUQ DOV &OLHQW6HUYHU9HUELQGXQJHQ DXIJHEDXW (LQ &RP SXWHU ZLUG DOV 6HUYHU JHVWDUWHW XQG VWHOOW DQGHUHQ &RPSXWHUQ VHLQH 'LHQVWH ]XU 9HUI JXQJ 'HU DQGHUH &RP SXWHU VWDUWHW GLH &OLHQW6RIWZDUH GLH GLH 9HUELQGXQJ ]XP 6HUYHU DXIEDXW XQG GHVVHQ 'LHQVWH LQ $QVSUXFK QLPPW (LQ &RPSXWHU NDQQ DEHU DXFK &OLHQW XQG 6HUYHU JOHLFK]HLWLJ VHLQ

Netzwerkzugriffe 3 (LQ %HLVSLHO I U HLQH &OLHQW6HUYHU9HUELQGXQJ LVW GDV :RUOG :LGH :HE 6LH VWDUWHQ,KUHQ %URZVHU XQG JHEHQ HLQHQ 'RPDLQ1DPHQ HLQ 'HU %URZVHU LVW LQ GLHVHP )DOO GHU &OLHQW GHU GLH 9HUELQGXQJ ]XP DQJHJHEHQHQ :HE6HUYHU KHUVWHOOW XQG GLH JHOLHIHUWHQ 'DWHQ DQ]HLJW 'LH $XIJDEH GHV :HE6HUYHUV LVW HV GLH DQJHIRUGHU WHQ 'DWHQ YRQ VHLQHU )HVWSODWWH ]X OHVHQ XQG DQ GHQ &OLHQW %URZVHU ]X OLHIHUQ Port-Adressen $XI HLQHP &RPSXWHU N QQHQ PHKUHUH 6HUYHUSURJUDPPH ODXIHQ GLH ZLHGHUXP YRQ PHKUHUHQ &OLHQWV EHQXW]W ZHUGHQ N QQHQ 8P GLH 6HUYHUDQZHQGXQJHQ YRQHLQDQGHU XQWHUVFKHLGHQ ]X N QQHQ ZLUG ]XP $XIEDX HLQHU 9HUELQGXQJ ]X GHU,3$GUHVVH ]XVlW]OLFK HLQH 3RUW1XPPHU DQJHJHEHQ (LQH &OLHQW6HUYHU9HUELQGXQJ NDQQ QXU DXIJHEDXW ZHUGHQ ZHQQ GLH &OLHQW6RIWZDUH GHQ 6HUYHU EHU GLH ULFKWLJH 3RUW1XPPHU DQVSULFKW ) U YLH OH 6HUYHU KDEHQ VLFK 6WDQGDUG3RUWV HQWZLFNHOW,Q GHU IROJHQGHQ 7DEHOOH VLQG HLQLJH 6HUYHU3URWRNROOH E]Z 6HUYLFHV PLW ]XJHK ULJHU 3RUW1XPPHU EHQXW]WHP 7UDQVSRUWSURWRNROO GHQ 5)&V 5HTXHVW IRU &RPPHQWV XQG HLQHU (UOlXWHUXQJ DXIJHI KUW 3URWRNROO'LHQVW 3RUW 7UDQVSRUW SURWRNROO,&033LQJ,QWHUQHW &RQWURO 0HVVDJH 3URWRFRO 1LFKW IHVWJHOHJW 5)&V (UOlXWHUXQJ 7&3 8'3 5)& 3URWRNROO ]XU hehuplwwoxqj YRQ.RQWUROO XQG )HKOHUPHOGXQJHQ ZlKUHQG GHU 'DWHQ EHU WUDJXQJ GD\WLPH6HUYLFH 7&3 8'3 5)& /LHIHUW DNWXHOOHV 'DWXP XQG 8KU]HLW HLQHU $WRPXKU )73 )LOH 7UDQVIHU 3URWRFRO 7(/1(7 7HUPLQDO9HUELQGXQJ 60730DLO6HUYHU 6LPSOH 0DLO 7UDQVIHU 3URWRFRO 7&3 5)& 'DWHL EHUWUDJXQJ PLW HLQHP )736HUYHU 7&3 5)& 3URWRNROO ]XU 7HUPLQDOHPXODWLRQ EHL GHU.RPPXQLNDWLRQ PLW HLQHP DQGHUHQ &RP SXWHU 7&3 5)& (LQIDFKHV 3RVWhEHUWUDJXQJVSURWRNROO I U GLH hehuwudjxqj HOHNWURQLVFKHU 3RVW LP,QWHUQHW 6HQGHQ YRQ (0DLOV )LQJHU 7&3 5)& /LHIHUW %HQXW]HULQIRUPDWLRQHQ DXV GHU,QWHU QHW%HQXW]HUGDWHQEDQN +773 +\SHUWH[W 7UDQVIHU 3URWRFRO 323 3RVW 2IILFH 3URWRFRO 173 1HWZRUN 7LPH 3URWRFRO 7&3 8'3 5)& 5)& 3URWRNROO ]XU hehuwudjxqj YRQ,QIRUPDWLR QHQ LP,QWHUQHW +70/6HLWHQ %LOGHUQ 7&3 8'3 5)& 0DLO7UDQVIHU3URWRFRO ]XP (PSIDQJHQ HOHNWURQLVFKHU 3RVW (PSIDQJHQ YRQ ( 0DLOV 7&3 8'3 5)& 173 JDUDQWLHUW GLH JHQDXH =HLWPHVVXQJ GXUFK 6\QFKURQLVDWLRQ PLW GHQ &RPSXWHU XKUHQ GHV,QWHUQHW Notizen

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung ; 'LH 1DPHQ GHU 3URWRNROOH VWLPPHQ PHLVW PLW GHQ 1DPHQ GHU 6HUYHU EHUHLQ,Q GHU 7DEHOOH LVW HLQH 6SDOWH 5)& DQJHJHEHQ 5)&V HQWKDOWHQ GLH %HVFKUHLEXQJHQ GHU 3URWRNROOH XQG LKUHU,PSOHPHQWLHUXQJ 6LH ZXUGHQ GXUFK GLH,$%,QWHUQHW $FWLYLW\ %RDUG HUVWHOOW ; $OOH GHP 6\VWHP EHNDQQWHQ 3RUWQXPPHUQ VLQG LQ GHU 'DWHL VHUYLFHV DXIJHI KUW 'LHVH 'DWHL ILQGHQ 6LH LP :LQGRZV+DXSWYHU]HLFKQLV E]Z XQWHU?:,117?6\VWHP?'ULYHUV?HWF XQG XQWHU /LQX[ LP 9HU ]HLFKQLV HWF 6LH N QQHQ KLHU DXFK VHOEVW ZHLWHUH YRQ,KQHQ YHUZHQGHWH 3RUWV LQ IROJHQGHU )RUP HLQ WUDJHQ myport 45000/tcp 'DV %HWULHEVV\VWHP JLEW GDQQ GLHVH 3RUW1XPPHU EHL $QIUDJHQ EH] JOLFK HLQHV IUHLHQ 3RUWV QLFKW PHKU DXV 'LH 3RUW1XPPHU NDQQ HLQH =DKO ]ZLVFKHQ XQG VHLQ %HDFKWHQ 6LH EHL GHU 3URJUDPPLHUXQJ HLJHQHU &OLHQW6HUYHU9HUELQGXQJHQ GDVV 6LH GLH EHUHLWV EHOHJWHQ 3RUW1XPPHUQ QLFKW YHUZHQGHQ G UIHQ 'DV VLQG ]XPLQGHVW DOOH =DKOHQ NOHLQHU DOV 1XW]HQ 6LH GLH 3RUWQXPPHUQ DE YHUPHLGHQ 6LH PLW KRKHU 6L FKHUKHLW.RQIOLNWH Proxy-Server 'LH PHLVWHQ 5HFKQHUQHW]H YRQ )LU PHQ KDEHQ HLQHQ HLJHQHQ 3UR[\ VHUYHU NXU] 3UR[\ GHU GHQ (LQ XQG $XVJDQJ GHV 1HW]HV EHUZDFKW XQG GDV 1HW] YRU XQEHUHFKWLJWHP =XJULII VFK W]W (U EHILQGHW VLFK ]ZLVFKHQ GHP 1HW]ZHUN GHU )LUPD XQG GHU $X HQZHOW VRGDVV DOOH $QIRUGHUXQJHQ ]XHUVW DQ GHQ 3UR[\ JHKHQ EHYRU VLH GDV 1HW] YHUODVVHQ XQG XPJHNHKUW 'DV EHWULIIW QLFKW QXU,QWHUQHWDQIRUGHUXQJHQ VRQGHUQ ] % DXFK )739HUELQGXQJHQ 3.2 Klassen für die Speicherung von Internetadressen 3.2.1 Internetadressen,P 3DFNDJH java.net LVW GLH.ODVVH InetAddress LPSOHPHQWLHUW GLH ]XU 6SHLFKHUXQJ YRQ,QWHUQHWDGUHVVHQ YHUZHQGHW ZHUGHQ NDQQ (LQ 2EMHNW GLHVHU.ODVVH GLHQW GHU 6SHLFKHUXQJ GHV $OLDVQDPHQV ORJLVFKHQ 1DPHQV +RVW1DPHQV XQG GHU ]XJHK ULJHQ,3$GUHVVH =XU (U]HXJXQJ HLQHV InetAddress2EMHNWV NDQQ HLQH GHU IRO JHQGHQ 0HWKRGHQ YHUZHQGHW ZHUGHQ static InetAddress getlocalhost() static InetAddress getbyname(string host) static InetAddress[] getallbyname(string host) ; 'LH 0HWKRGH getlocalhost HU]HXJW HLQ InetAddress2EMHNW ZHOFKHV GLH $GUHVVH GHV HLJHQHQ &RP SXWHUV HQWKlOW ; 0LWKLOIH GHU 0HWKRGH getbyname ZLUG HLQ InetAddress 2EMHNW I U GHQ DOV 3DUDPHWHU EHUJHEHQHQ &RPSXWHU HU]HXJW ; :HQQ DOOH,3$GUHVVHQ HLQHV &RPSXWHUV HUPLWWHOW ZHUGHQ VROOHQ NDQQ GLH 0HWKRGH getallbyname YHUZHQGHW ZHUGHQ (V ZLUG HLQ $UUD\ YRQ InetAddress2EMHNWHQ HU]HXJW 'LH 0HWKRGHQ PLW GHQHQ 6LH,QIRUPDWLRQHQ ]XP JHVSHLFKHUWHQ InetAddress2EMHNW HUKDOWHQ VLQG LQ GHU QDFKVWHKHQGHQ 7DEHOOH ]XVDPPHQJHIDVVW

Netzwerkzugriffe 3 String gethostname() String gethostaddress() byte[] getaddress() boolean ismulticastaddress() /LHIHUW GHQ ORJLVFKHQ 1DPHQ GHU,3$GUHVVH ]XU FN /LHIHUW GLH,3$GUHVVH ]XU FN /LHIHUW GLH,3$GUHVVH DOV byte$uud\ ]XU FN /LHIHUW true ]XU FN ZHQQ GLH,3$GUHVVH HLQH 0XOWLFDVW$GUHVVH LVW GLH JOHLFK]HLWLJ DQ PHKUHUH 6WDWLRQHQ 1DFKULFKWHQ YHUVFKLFNHQ NDQQ Beispiel: com\herdt\java14f\kap03\internetadressen.java 'DV IROJHQGH %HLVSLHOSURJUDPP ]HLJW ]XP HLQJHJHEHQHQ $OLDVQDPHQ ] % localhost RGHU www.sun.com GLH HQWVSUHFKHQGH,3$GUHVVH DQ (V ZLUG HLQH 9HUELQGXQJ ]XP,QWHUQHW EHQ WLJW import java.io.*; import java.net.*; public class InternetAdressen public static void main(string[] args) try BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Bitte geben Sie den Domain-Namen ein"); while( true) System.out.print("Domain-Name: "); String s = in.readline(); if(s.equals("ende")) break; try InetAddress iaddr = InetAddress.getByName(s); System.out.println("IP-Adresse: " + iaddr.gethostaddress() + "\n"); catch(unknownhostexception ex) System.out.println("Host konnte nicht gefunden werden" + "\n"); catch (Exception ex) :HQQ GLH.ODVVH InetAddress YHUZHQGHW ZLUG PXVV GDV 3DFNDJH java.net HLQJHEXQGHQ ZHUGHQ 'DV BufferedReader2EMHNW in ZLUG I U GLH ]HLOHQZHLVH (LQJDEH EHQ WLJW,Q GHU 6FKOHLIH ZLUG GHU EHU GLH 7DVWDWXU HLQJHJHEHQH 'RPDLQ1DPH HLQJHOHVHQ 'LH (LQJDEH GHU =HL FKHQNHWWH ende EHZLUNW GLH %HHQGLJXQJ GHU 6FKOHLIH XQG GHV 3URJUDPPV 0LWKLOIH GHU 0HWKRGH getbyname ZLUG HLQ 2EMHNW GHU.ODVVH InetAddress I U GHQ EHUJHEHQHQ 'RPDLQ1DPHQ HU]HXJW =X GHP 'RPDLQ1DPHQ ZLUG GXUFK GLH 0HWKRGH gethostaddress GLH,3$GUHVVH HUPLWWHOW,VW GHU 'RPDLQ1DPH QLFKW DXIILQGEDU ZLUG HLQH ([FHSWLRQ YRP 7\S UnknownHostException DXVJH O VW 7ULWW GLH ([FHSWLRQ DXI ZLUG HLQH HQWVSUHFKHQGH )HKOHUPHOGXQJ DQJH]HLJW

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung 'LH $XVJDEH GHV 3URJUDPPV NDQQ EHLVSLHOVZHLVH ZLH IROJW DXVVHKHQ Domain-Name: localhost RGHU Domain-Name: java.sun.com IP-Adresse: 127.0.0.1 IP-Adresse: 204.160.241.19 :HQQ 6LH GDV 3URJUDPP LQ HLQHP 1HW] PLW YRUJHVFKDOWHWHP 3UR[\ DXVI KUHQ N QQHQ 6LH QXU GLH,3$GUHVVHQ GHU LP 1HW] EHILQGOLFKHQ &RPSXWHU HUPLWWHOQ :HQQ 6LH GDV 3URJUDPP LQ HLQHP VROFKHQ 1HW] DXVI KUHQ XQG EHLVSLHOVZHLVH GHQ 'RPDLQ1DPHQ GHU )LUPD 6XQ DQJHEHQ HUKDOWHQ 6LH GLH IROJHQGH $XVJDEH Domain-Namen: java.sun.com Host konnte nicht gefunden werden 3.2.2 Die Klassen URI und URL (LQH 85, 8QLIRUP 5HVRXUFH,GHQWLILHU LVW HLQH =HLFKHQNHWWH EHU GLH HLQH 5HVVRXUFH LP 1HW]ZHUN HLQGHXWLJ LGHQWLIL]LHUW ZHUGHQ NDQQ (LQH 85, LVW HQW ZHGHU HLQH 85/ RGHU HLQH 851 (LQH 85/ 8QLIRUP 5HVRXUFH /RFDWRU LGHQWL IL]LHUW HLQH H[LVWLHUHQGH 5HVVRXUFH 4XHOOH LP 1HW]ZHUN EHU GLH /DJH GHV 6HUYHUV 'LH 85/ ZLUG LP,QWHUQHW DP KlXILJVWHQ YHUZHQGHW (LQH 5HVVRXUFH NDQQ DEHU DXFK EHU HLQHQ DEVWUDNWHQ 1DPHQ 851 8QLIRUP 5HVVRXUFH 1DPH DXIJHIXQGHQ ZHUGHQ 'HU 8516HUYHU VWHOOW EHU GLH I U GHQ 1DPHQ KLQWHUOHJWHQ 85/V GLH 9HUELQGXQJ ]XP ULFKWLJHQ 6HUYHU KHU 851 EHILQGHW VLFK GHU]HLW QRFK LP $XIEDX 85/ 85, 851 'D HLQH 85, HLQH 85/ RGHU HLQH 851 VHLQ NDQQ XPIDVVW VLH GLH 6\QWD[ YRQ 85/ XQG 851 'LH DOOJHPHLQH 'DUVWHOOXQJ KDW IROJHQGH )RUP >6FKHPD @ VFKHPDVSH]LILVFKHU 7HLO 'DV 6FKHPD EH]HLFKQHW GHQ 'LHQVW GHU I U GDV $XIILQGHQ YHUZHQGHW ZHUGHQ VROO (V JLEW YHUVFKLHGHQH 'LHQVWH GLH I U 85/V YHUZHQGHW ZHUGHQ N QQHQ ] % KWWS IWS PDLOWR RGHU WHOQHW ) U 851 JLEW HV QXU GHQ 'LHQVW XUQ,P VFKHPDVSH]LILVFKHQ 7HLO ZHUGHQ ZHLWHUH,QIRUPDWLRQHQ LQ $EKlQJLJNHLW YRP 6FKHPD DXIJH I KUW $XFK GLHVHU 7HLO NDQQ VLFK DXV PHKUHUHQ 7HLOHQ ]XVDPPHQVHW]HQ (LQH 85/ EHVWHKW DXV PHKUHUHQ 7HL OHQ XQG ZLUG PLW GHU $QJDEH HLQHV 3URWRNROOV HLQJHOHLWHW (LQH 85/ I U GHQ 'LHQVW KWWS EHVWHKW EHLVSLHOVZHLVH DXV IROJHQGHQ %HVWDQGWHLOHQ ; 1DPH GHV 6FKHPDV HLQ GXUFK GDV 6FKHPD EH]HLFKQHWHU 'LHQVW LVW HLQ 3URJUDPP ZHOFKHV DXI GHU *UXQGODJH HLQHV 3URWRNROOV GLH 'DWHQ EHUWUDJXQJ GXUFKI KUW ; 'RPDLQ1DPH RGHU,3$GUHVVH GHV +RVWV YRP 'LHQVW GXUFK GLH =HLFKHQ :// JHWUHQQW ; 3RUW1XPPHU RSWLRQDO ] % 3RUW I U +773'LHQVWH RGHU 3RUW I U )73'LHQVWH ; 'DWHLQDPH PHLVW HLQHU +70/'DWHL GXUFK GDV =HLFKHQ YRP +RVW1DPHQ JHWUHQQW 'HU )73'LHQVW LVW lkqolfk DXIJHEDXW (V N QQHQ GRUW ]XVlW]OLFK QRFK GHU %HQXW]HUQDPH XQG GDV 3DVVZRUW DQJHJHEHQ ZHUGHQ %HLVSLHOH I U J OWLJH 85/V VLQG 6FKHPD 'RPDLQ 3RUW 1DPHQVWHLO KWWSZZZKHUGWFRP VLWHV NXUVGHVLJQHUIUDPHVHWLQGH[KWP IWS PDLOWRinfo@herdt.com 8QYROOVWlQGLJH $GUHVVHQ ZHUGHQ PHLVW YRQ GHQ %URZVHUQ HUJlQ]W :HQQ GLH $QJDEH GHV 3URWRNROOV 'LHQV WHV IHKOW VR ZLUG DXWRPDWLVFK http:// HLQJHI JW,Q GHU 5HJHO N QQHQ 6LH DXI GLH $QJDEH GHU 3RUW1XPPHU YHU]LFKWHQ GD GLHVH DXV GHP 3URWRNROO KHUYRUJHKW (LQLJH 'LHQVWH YHUZHQGHQ MHGRFK QLFKW GHQ 6WDQGDUGSRUW 0 FKWHQ 6LH HLQH 'DWHL DXI,KUHP 5HFKQHU DOV 85/ DQJHEHQ NDQQ DOV 3URWRNROO file YHUZHQGHW ZHUGHQ ] %

Netzwerkzugriffe 3 file:///c:/winnt/media/chord.wav 'LH -DYD.ODVVHQ ZHOFKH HLQH 85, E]Z HLQH 85/ UHSUlVHQWLHUHQ VLQG LP 3DFNDJH java.net LPSOHPHQWLHUW Verwaltung von URIs 6HLW -6( VWHKW GLH.ODVVH URI ]XP 6SHLFKHUQ YRQ 85,V ]XU 9HUI JXQJ 6LH N QQHQ HLQH 85, RKQH 9RU KDQGHQVHLQ HLQHV 3URWRNROO+DQGOHUV HU]HXJHQ ZDV EHL HLQHU 85/ QLFKW P JOLFK LVW 'LH.ODVVH URI EHVLW]W YHUVFKLHGHQH.RQVWUXNWRUHQ EHU GLH GLH 85, DOV HLQ 6WULQJ RGHU LQ LKUHQ (LQ]HOWHLOHQ EHUJHEHQ ZHUGHQ NDQQ (LQ URI2EMHNW LVW NRQVWDQW NDQQ DOVR QDFK VHLQHU (U]HXJXQJ QLFKW PHKU YHUlQGHUW ZHUGHQ hehu YHUVFKLHGHQH get 0HWKRGHQ N QQHQ 6LH GLH HLQ]HOQHQ 7HLOH GHU 85, DEIUDJHQ String getscheme() String getpath() String gethost() int getport() /LHIHUW GDV 6FKHPD GHQ 'LHQVW GDV GLH 85, YHUZHQGHW ] % KWWS *LEW GHQ HQWVFKO VVHOWHQ 3IDG GHU 5HVVRXUFH GLHVHU 85, ]XU FN /LHIHUW GHQ 7HLO GHU 85, GLH GHQ 1DPHQ GHV +RVWUHFKQHUV RGHU null DQJLEW ] % ZZZKHUGWFRP 'LH 3RUWQXPPHU GHU 85, ZLUG HUPLWWHOW ] % URI2EMHNWH N QQHQ DOV 3DUDPHWHU I U HQWVSUHFKHQGH 0HWKRGHQDXIUXIH YHUZHQGHW ZHUGHQ hehu GLH 0HWKRGH tourl NDQQ DXV GHP URI2EMHNW HLQ URL2EMHNW JHQHULHUW ZHUGHQ Verwaltung von URLs 'LH.ODVVH URL NDSVHOW,QIRUPDWLRQHQ ]X HLQHU 85/ 'LH 85/ ZLUG EHL GHU 6SHLFKHUXQJ LQ LKUH HLQ]HOQHQ %H VWDQGWHLOH ]HUOHJW 0LW GHQ 0HWKRGHQ getprotocol gethost, getfile RGHU getport N QQHQ 6LH GLHVH %H VWDQGWHLOH DEIUDJHQ ) U GLH.ODVVH URL VLQG.RQVWUXNWRUHQ YRUKDQGHQ 'UHL ZLFKWLJH )RUPHQ VLQG LP )ROJHQGHQ DXIJHI KUW URL(String spec) throws MalformedURLException URL(String protocol, String host, int port, String file)throws MalformedURLException URL(URL context, String spec) throws MalformedURLException ; $OV 3DUDPHWHU NDQQ HLQ 6WULQJ spec EHUJHEHQ ZHUGHQ GHU GLH YROOVWlQGLJH 85/ HQWKlOW RGHU RGHU (V NDQQ GLH 85/ LQ LKUH %HVWDQGWHLOH ]HUOHJW EHUJHEHQ ZHUGHQ 3URWRNROO +RVW1DPH 3RUW1XPPHU XQG 'DWHLQDPH PHLVW HLQHU +70/'DWHL (LQ H[LVWLHUHQGHU 85/.RQWH[W XQG HLQH 6SH]LILNDWLRQ GLH ]XVDPPHQ HLQH YROOVWlQGLJH 85/ HUJHEHQ ZHUGHQ EHUJHEHQ ; 'LH EHUJHEHQH 85/ PXVV V\QWDNWLVFK ULFKWLJ VHLQ GD VRQVW HLQH ([FHSWLRQ YRP 7\S Malformed- URLException DXVJHO VW ZLUG 'DV (U]HXJHQ HLQHU 85/ PXVV DXV GLHVHP *UXQG LQ HLQHP trycatch %ORFN HLQJHVFKORVVHQ ZHUGHQ 'LH hehusu IXQJ EHWULIIW QXU GDV $GUHVVIRUPDW 2E GLH DQJHJHEHQH 85/ DXFK WDWVlFKOLFK H[LVWLHUW NDQQ HUVW ]XU /DXI]HLW GHV 3URJUDPPV IHVWJHVWHOOW ZHUGHQ,Q GHU IROJHQGHQ 7DEHOOH VLQG ZLFKWLJH 0HWKRGHQ GHU.ODVVH URI DXIJHI KUW String getfile() String gethost() *LEW GHQ 1DPHQ GHU 'DWHL GHU LQ GHU 85/ HQWKDOWHQ LVW ]XU FN /LHIHUW GHQ +RVW1DPHQ GHU LQ GHU 85/ HQWKDOWHQ LVW int getport() /LHIHUW GLH 3RUW1XPPHU GHU 85/ String getprotocol() String getref() URLConnection openconnection() throws IOException *LEW GDV 3URWRNROO GHU 85/ ]XU FN *LEW GHQ $QNHU 5HIHUHQ] DXI GLH 85/ ]XU FN giiqhw HLQH QHXH 9HUELQGXQJ ]X GHU 85/$GUHVVH XQG JLEW HLQ URL- Connection2EMHNW ]XU FN

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung InputStream openstream() throws IOException boolean samefile(url other) giiqhw HLQH QHXH 9HUELQGXQJ ]X GHU 85/ YRQ GHU JHOHVHQ ZHUGHQ VROO XQG JLEW HLQ InputStream2EMHNW ]XU FN 9HUJOHLFKW ]ZHL 85/V LQ %H]XJ DXI GLH 85/$GUHVVH XQG JLEW true ]XU FN ZHQQ EHLGH DXI GLHVHOEH 5HVVRXUFH YHUZHLVHQ 'LH get0hwkrghq GHU.ODVVH OLHIHUQ GLH HLQ]HOQHQ %HVWDQGWHLOH GHU 85/ ]XU FN 8P HLQH 9HUELQGXQJ ]ZL VFKHQ HLQHP -DYD3URJUDPP XQG GHU 85/ HLQHV DQGHUHQ &RPSXWHUV KHU]XVWHOOHQ NDQQ GLH 0HWKRGH open- Connection JHQXW]W ZHUGHQ 6LH OLHIHUW HLQ 2EMHNW GHU DEVWUDNWHQ.ODVVH URLConnection ZHOFKHV GLHVH.RPPXQLNDWLRQVYHUELQGXQJ UHSUlVHQWLHUW 'LH 0HWKRGH openstream OLHIHUW HLQ InputStream2EMHNW GDV GD ]X YHUZHQGHW ZHUGHQ NDQQ HLQH 'DWHL DXI HLQHP DQGHUHQ DXFK DXI HLQHP ZHLW HQWIHUQWHQ 5HFKQHU ]X OHVHQ Beispiel: com\herdt\java14f\kap03\urls.java 'LHVHV %HLVSLHOSURJUDPP QXW]W GLH.ODVVH URL XP HLQH +70/6HLWH ]X OHVHQ XQG DXI GHU.RQVROH DXV]X JHEHQ $OV $UJXPHQW PXVV GHP 3URJUDPP GLH 85/ GHU +70/6HLWH DQJHJHEHQ ZHUGHQ import java.io.*; import java.net.*; public class URLs public static void main(string[] args) int l = 100; byte[] is_byte = new byte[l]; try URL url = new URL(args[0]); InputStream is = url.openstream(); System.out.println("Inhalt von " + url.getprotocol()+ "://" + url.gethost() + ": " + url.getport()); while((l = is.read(is_byte))!= -1) System.out.print(tochar(is_byte)); catch(malformedurlexception ex) System.out.println("falsche URL"); catch(ioexception ex) ex.printstacktrace(); private static char[] tochar(byte[] b) char[] c = new char[b.length]; for ( int i = 0; i < b.length; i++) c[i] = ( char)((b[i] & 0x7F) + (b[i] < 0? 128 : 0)); return c; 8P GLH.ODVVH URL ]X QXW]HQ P VVHQ 6LH GDV 3DFNDJH java.net HLQELQGHQ ) U GDV (LQOHVHQ DXV GHP InputStream ZLUG HLQ byte$uud\ EHQ WLJW 'LH DOV $UJXPHQW EHUJHEHQH 85/ ZLUG LP 2EMHNW url JHVSHLFKHUW 'LH 0HWKRGH openstream IIQHW GLH EHU GLH 85/ JHIXQGHQH 'DWHL ]XP /HVHQ

Netzwerkzugriffe 3 (V ZHUGHQ GLH HLQ]HOQHQ 7HLOH GHU 85/ DQJH]HLJW getprotocol OLHIHUW GDV 3URWRNROO gethost JLEW GHQ 1DPHQ GHV +RVW&RPSXWHUV XQG getport GHQ YHUZHQGHWHQ 3RUW ]XU FN (V ZLUG VR ODQJH JHOHVHQ ELV GLH $Q]DKO GHU JHOHVHQHQ %\WHV LVW GDV KHL W ELV GDV 'DWHLHQGH HU UHLFKW LVW 'LH JHOHVHQHQ 'DWHQ ZHUGHQ DXI GHU.RQVROH DXVJHJHEHQ 'D GLH read0hwkrgh HLQ byte$uud\ ]X U FNJLEW XQG GLH print 0HWKRGH QXU char $UUD\V DXVJHEHQ NDQQ ZXUGH GLH 0HWKRGH tochar LPSOH PHQWLHUW XP HLQH 7\SNRQYHUWLHUXQJ GXUFK]XI KUHQ %HL GHU 9HUZHQGXQJ GHU.ODVVH URL NDQQ HLQH ([FHSWLRQ YRP 7\S MalformedURLException DXV JHO VW ZHUGHQ ZHQQ GLH 85/ V\QWDNWLVFK IDOVFK DQJHJHEHQ ZXUGH 3.3 Socket-Programmierung (LQ 6RFNHW LVW HLQH 6FKQLWWVWHOOH I U GLH ELGLUHNWLRQDOH.RPPXQLNDWLRQ ]ZLVFKHQ ]ZHL &RPSXWHUQ LP 1HW]ZHUN 'DV 3ULQ]LS GHU 6RFNHWV ZXUGH $QIDQJ GHU HU-DKUH LQ 81,; HLQJHI KUW XQG KDW VLFK I U GLH 3UR]HVV NRPPXQLNDWLRQ DXFK XQWHU DQGHUHQ %HWULHEVV\VWHPHQ GXUFKJHVHW]W %HL GHU 'DWHQ EHUWUDJXQJ EHU HLQH 6RFNHW9HUELQGXQJ ZHUGHQ GUHL 6FKULWWH YROO]RJHQ ; +HUVWHOOHQ HLQHU 3XQNW]X3XQNW9HUELQGXQJ ]ZLVFKHQ ]ZHL 5HFKQHUQ 'D]X ZLUG HLQH 9HUELQGXQJ ]X HLQHP 6HUYHU EHU GHVVHQ,3$GUHVVH XQG HLQHU 3RUW1XPPHU KHUJHVWHOOW -H QDFK 9HUELQGXQJVW\S SURWRNROO ZLUG GLH JOHLFKH,QIRUPDWLRQ DXFK YRP 6HUYHU EHQ WLJW XP PLW GHP &OLHQW ]X NRPPXQL]LH UHQ ; 'DWHQ EHUWUDJHQ ; 9HUELQGXQJ DEEDXHQ =ZLVFKHQ GHQ EHLGHQ 5HFKQHUQ ZLUG GDEHL HLQH &OLHQW 6HUYHU9HUELQGXQJ DXIJHEDXW 'HU 6RFNHW GHV 6HUYHUV ZDU WHW GDEHL VR ODQJH ELV HLQ &OLHQW6RFNHW GLH 9HUELQGXQJ DXI QLPPW XQG 'DWHQ EHUWUlJW E]Z DQIRUGHUW :HQQ GHU &OLHQW GLH 'DWHQ EHUWUDJXQJ EHHQGHW KDW ZLUG GLH 9HUELQGXQJ ZLHGHU JHVFKORVVHQ 'HU 6HUYHU JHKW ZLHGHU LQ GHQ :DUWH ]XVWDQG EHU RGHU HU ZLUG HEHQIDOOV EHHQGHW,Q -DYD ZHUGHQ 6RFNHWV JUXQGVlW]OLFK GXUFK ]ZHL.ODVVHQ LPSOHPHQWLHUW Server Socket erzeugen Port-Nummer festlegen ( bind) auf Verbindung warten ( listen) Verbindungsaufbau bestätigen ( accept) Client Socket erzeugen mit Server verbinden ; Socket I U GLH +HUVWHOOXQJ HLQHU 9HUELQGXQJ DXV GHU 6LFKW HLQHV &OLHQWV ; ServerSocket I U GLH 9HUELQGXQJVHUVWHOOXQJ YRP 6HUYHU DXVJHKHQG lesen /schreiben Socket schließen ( close ) schreiben / lesen Verbindung abbauen ( close ) Notizen

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung 3.3.1 Client-Sockets (LQ Socket 2EMHNW NDQQ EHU GHQ $XIUXI HLQHV GHU IROJHQGHQ.RQVWUXNWRUHQ HU]HXJW ZHUGHQ $OOH.RQVWUXNWRUHQ N QQHQ HLQH ([FHSWLRQ YRP 7\S IOException DXVO VHQ Socket(String host, int port) Socket(String host, int port, InetAddress localaddr, int localport) Socket(InetAddress address, int port) Socket(InetAddress address, int port, InetAddress localaddr, int localport) ; $OV HUVWHU 3DUDPHWHU LVW GHU 1DPH GHV 6HUYHUV +RVWV DQ]XJHEHQ 'LHV NDQQ HLQ 6WULQJ VHLQ GHU GHQ ORJLVFKHQ 1DPHQ HQWKlOW RGHU HLQ InetAddress 2EMHNW ; 'HP.RQVWUXNWRU LVW LQ MHGHP )DOO GLH 1XPPHU GHV 3RUWV ]X EHUJHEHQ EHU GHQ GLH.RPPXQLNDWLRQ HUIROJHQ VROO 'HU 3RUW NDQQ HLQ 6WDQGDUG3RUW VHLQ ZHQQ HLQHU GHU 6WDQGDUGGLHQVWH JHQXW]W ZHUGHQ VROO ] % I U KWWS :LUG GHU 6HUYHU VHOEVW HQWZLFNHOW NDQQ GLH 3RUWQXPPHU PLW GHQ JHQDQQWHQ (LQ VFKUlQNXQJHQ VHOEVW JHZlKOW ZHUGHQ ; 'HQ EHLGHQ.RQVWUXNWRUHQ PLW YLHU 3DUDPHWHUQ N QQHQ ]XVlW]OLFK QRFK GHU 1DPH XQG GLH 3RUWQXPPHU GHV ORNDOHQ 5HFKQHUV EHUJHEHQ ZHUGHQ ; :LUG GHU DQJHJHEHQH =LHOUHFKQHU QLFKW JHIXQGHQ ZLUG HLQH ([FHSWLRQ YRP 7\S UnknownHost- Exception YRQ IOException DEJHOHLWHW DXVJHO VW 'LH.ODVVH Socket EHVLW]W HLQLJH get XQG set0hwkrghq ]XP $EIUDJHQ XQG 6HW]HQ GHU 9HUELQGXQJVHLJHQ VFKDIWHQ 'LH ZLFKWLJVWHQ 0HWKRGHQ VLQG getoutputstream XQG getinputstream ZHOFKH HLQ Output- Stream E]Z InputStream 2EMHNW ]XU FNJHEHQ :XUGH GLH 9HUELQGXQJ HUIROJUHLFK HLQJHULFKWHW NDQQ GHU 'DWHQDXVWDXVFK EHU GLHVH 2EMHNWH HUIROJHQ InetAddress getinetaddress() int getport() public OutputStream getoutputstream() throws IOException public InputStream getinputstream() throws IOException public int getsotimeout() throws SocketException public void setsotimeout(int timeout) throws SocketException /LHIHUW GLH $GUHVVH GHV +RVW5HFKQHUV ]X GHP GLH 9HU ELQGXQJ EHVWHKW ZLUG GLH 0HWKRGH YRP +RVW DXV DXI JHUXIHQ OLHIHUW VLH GLH HLJHQH $GUHVVH *LEW GLH 3RUW1XPPHU GHV +RVWV ]XU FN (U]HXJW HLQ OutputStream2EMHNW I U GDV hehuwudjhq YRQ 'DWHQ ]XP 6HUYHU *LEW HLQ InputStream2EMHNW I U GDV /HVHQ YRQ 'DWHQ YRP 6HUYHU ]XU FN /LHIHUW GLH =HLW LQ PV GLH HLQH /HVHDQIRUGHUXQJ DXI GHQ +RVW GDXHUQ GDUI EHYRU HLQH InterruptedIOException DXVJHO VW ZLUG HQWVSULFKW XQEHJUHQ]WHU :DUWH]HLW 6HW]W GLH 7LPHRXW=HLW I U GLH /HVHDQIRUGHUXQJ YRP +RVW DXI GHQ EHUJHEHQHQ :HUW LQ PV HQWVSULFKW XQEH JUHQ]WHU :DUWH]HLW Beispiel: com\herdt\java14f\kap03\client.java 'HU DEJHELOGHWH &OLHQW YHUELQGHW VLFK PLW GHP 6HUYHU XQG JLEW DXI GHP 6HUYHU GLH 1DFKULFKWHQ DXV GLH GXUFK GHQ %HQXW]HU DXI GHU.RQVROH HLQJHJHEHQ ZHUGHQ 'HP &OLHQW LVW DOV $UJXPHQW GLH $GUHVVH GHV 6HUYHUV ]X EHUJHEHQ import java.io.*; import java.net.*; public class Client public static void main(string [] args) throws IOException String s;

Netzwerkzugriffe 3 if(args.length!= 1) System.out.println("falscher oder fehlender Parameter\n" + "Geben Sie als Parameter die Adresse des Servers an"); System.exit(1); try Socket clientsocket = new Socket(args[0], 45678); BufferedWriter out = new BufferedWriter( new OutputStreamWriter( clientsocket.getoutputstream())); BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Verbindung zu " + clientsocket.getinetaddress() + " hergestellt."); do System.out.print("Nachricht an Server: "); s = in.readline(); out.write (s); out.newline(); out.flush(); while(!s.equals("ende") && clientsocket!= null); in.close(); out.close(); catch (Exception ex) ex.printstacktrace(); System.exit(1); 'DV 3DFNDJH java.io LVW I U GLH 1XW]XQJ GHU (LQ XQG $XVJDEHNODVVHQ HLQ]XELQGHQ ) U GLH $UEHLW LP 1HW]ZHUN PXVV GDV 3DFNDJH java.net HLQJHEXQGHQ ZHUGHQ 'HP &OLHQW PXVV DOV $UJXPHQW GLH $GUHVVH GHV 6HUYHUV DOV,3$GUHVVH RGHU DOV V\PEROLVFKHU 1DPH EHUJHEHQ ZHUGHQ :XUGH PHKU DOV HLQ 3DUDPHWHU RGHU NHLQ 3DUDPHWHU EHUJHEHQ ZLUG GDV 3URJUDPP PLW HLQHU )HKOHU PHOGXQJ YHUODVVHQ Notizen

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung (V ZLUG GDV 6RFNHW2EMHNW clientsocket HU]HXJW 'LHVHV VWHOOW EHU GHQ 3RUW HLQH 9HUELQGXQJ ]XP +RVW KHU GHU DOV 3DUDPHWHU GHP 3URJUDPP EHUJHEHQ ZXUGH.DQQ GLH 9HUELQGXQJ QLFKW KHUJH VWHOOW ZHUGHQ ZLUG HLQH UnknownHostException DXVJHO VW 'DV 2EMHNW out LVW HLQ BufferedWriter GHU GDV OutputStream2EMHNW GHV clientsockets VFKDFK WHOW hehu GLHVHV 2EMHNW N QQHQ GLH 'DWHQ DQ GHQ +RVW EHUWUDJHQ ZHUGHQ 'HU BufferedReader ZLUG I U GLH ]HLOHQZHLVH %HQXW]HUHLQJDEH EHQ WLJW 'LH 0HOGXQJ HQWKlOW GLH $GUHVVH GHV +RVW5HFKQHUV GLH YRQ GHU 0HWKRGH getinetaddress JHOLHIHUW ZLUG (LQH (LQJDEH]HLOH ZLUG YRQ GHU.RQVROH JHOHVHQ XQG GHU 9DULDEOHQ s ]XJHZLHVHQ 'HU JHOHVHQH 6WULQJ ZLUG LQ GHQ $XVJDEHVWURP out GHV clientsockets JHVFKULHEHQ XQG DQ GHQ +RVW EHUWUDJHQ 'HU +RVW ZLHGHUXP PXVV EHU HLQ Socket2EMHNW HLQ InputStream2EMHNW HU]HXJHQ ZHO FKHV GLHVHQ 'DWHQVWURP OHVHQ NDQQ 'DV /HVHQ XQG 6FKUHLEHQ VROO VR ODQJH GXUFKJHI KUW ZHUGHQ ELV GLH =HLFKHQNHWWH ende HLQJHJHEHQ RGHU GLH 9HUELQGXQJ XQWHUEURFKHQ ZLUG 'DQQ ZHUGHQ EHLGH 6WUHDPV JHVFKORVVHQ 8P GLHVHV %HLVSLHO WHVWHQ ]X N QQHQ EHQ WLJHQ 6LH HLQHQ 6HUYHU GHU LP IROJHQGHQ $EVFKQLWW EHVFKULHEHQ ZLUG 3.3.2 Server-Socket %HYRU HLQ &OLHQW GLH.RPPXQLNDWLRQ PLW HLQHP 6HUYHU DXIQHKPHQ NDQQ PXVV GHU 6HUYHU JHVWDUWHW ZHUGHQ 'HU 6HUYHU EOHLEW LQ :DUWHVWHOOXQJ ELV VLFK HLQ &OLHQW EHL LKP DQPHOGHW,Q -DYD ZLUG GLHVHU $EODXI PLWKLOIH GHU.ODVVH ServerSocket UHDOLVLHUW 'HU 6HUYHU6RFNHW NDQQ DOV *HJHQVW FN ]XP &OLHQW6RFNHW DQJHVHKHQ ZHU GHQ (U]HXJW ZLUG HLQ 6HUYHU6RFNHW EHU HLQHQ GHU IROJHQGHQ.RQVWUXNWRUHQ ServerSocket(int port) ServerSocket(int port, int backlog) ; 'HP.RQVWUXNWRU LVW GLH 3RUW1XPPHU ]X EHUJHEHQ EHU ZHOFKH GLH 9HUELQGXQJ HUIROJHQ VROO :LUG GHU :HUW 0 DQJHJHEHQ ZLUG HLQ EHOLHELJHU IUHLHU 3RUW YHUZHQGHW ; 0LW GHP ]ZHLWHQ 3DUDPHWHU NDQQ GLH PD[LPDOH /lqjh GHU :DUWHVFKODQJH EHVWLPPW ZHUGHQ :LUG HLQH 9HUELQGXQJ DQ HLQHU YROOHQ :DUWHVFKODQJH DQJHPHOGHW ZLUG GLH 9HUELQGXQJ YHUZHLJHUW 1DFK GHP (UVWHOOHQ GHV 6RFNHWV ZDUWHW GHU 6HUYHU DXI 9HUELQGXQJVDQIUDJHQ DP EHWUHIIHQGHQ 3RUW 'D]X ZLUG GLH 0HWKRGH accept DXIJHUXIHQ Socket accept() ; 'HU $XIUXI GHU 0HWKRGH accept EHZLUNW GDVV GHU 6HUYHU LQ HLQHQ :DUWH]XVWDQG EHUJHKW.RPPW HLQH 9HUELQGXQJVDQIRUGHUXQJ YRQ HLQHP &OLHQW OLHIHUW GLHVH 0HWKRGH GDV Socket2EMHNW I U GLH &OLHQW 9HUELQGXQJ 'DV ]XU FNJHJHEHQH Socket 2EMHNW NDQQ I U GLH.RPPXQLNDWLRQ PLW GHP &OLHQW6RFNHW YHUZHQGHW ZHUGHQ :LUG GLH 9HUELQGXQJ YRP &OLHQW EHHQGHW NDQQ GHU 6HUYHU HLQHQ ZHLWHUHQ &OLHQW EHGLHQHQ %HHQGHW ZHUGHQ NDQQ GHU 6HUYHU GXUFK GLH 0HWKRGH close 'LH.ODVVH EHVLW]W ZHLWHUH set XQG get0hwkrghq PLW GHQHQ,Q IRUPDWLRQHQ EHU GLH 9HUELQGXQJ DEJHIUDJW E]Z (LQVWHOOXQJHQ YRUJHQRPPHQ ZHUGHQ N QQHQ void close() InetAddress getinetaddress() int getlocalport() int getsotimeout() void setsotimeout( int timeout) 6FKOLH W GHQ 6HUYHU6RFNHW *LEW GLH ORNDOH $GUHVVH GHV 6HUYHUV ]XU FN /LHIHUW GHQ 3RUW PLW GHP GHU 6HUYHU6RFNHW YHUEXQGHQ LVW *LEW GLH =HLWVSDQQH ]XU FN I U GLH HLQ &OLHQW GHQ 6HUYHU6RFNHW EORFNLHUHQ GDUI RKQH GDVV HLQ $EEUXFK HUIROJW 7LPHRXW=HLW 6HW]W GLH 7LPHRXW=HLW DXI GHQ EHUJHEHQHQ :HUW LQ PV

Netzwerkzugriffe 3 Beispiel: com\herdt\java14f\kap03\server.java 'LHVHU 6HUYHU LVW GDV *HJHQVW FN ]XP ]XYRU EHVFKULHEHQHQ &OLHQW (U ZDUWHW DXI GLH 9HUELQGXQJVDQIRUGHUXQJ GHV &OLHQWV XQG JLEW GLH YRP &OLHQW JHVHQGHWHQ =HLFKHQNHWWHQ DXI GHU.RQVROH DXV :HQQ GHU &OLHQW GLH 9HU ELQGXQJ EHHQGHW ZLUG DXFK GHU 6HUYHU EHHQGHW import java.net.*; import java.io.*; import java.util.*; public class Server public static void main(string[] args) throws IOException System.out.println(">>> Server wird gestartet"); ServerSocket serversocket = new ServerSocket(45678); Socket clientsocket = serversocket.accept(); BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); System.out.println("--> Client angemeldet"); String s; try while((s = in.readline())!= null) System.out.println ("> " + s); catch(exception ex) System.out.println("<-- Client abgemeldet"); clientsocket.close();,q GHU.ODVVH Server ZLUG HLQ HLQIDFKHU 6HUYHU LPSOHPHQWLHUW 'HU 6HUYHU6RFNHW serversocket ZLUG HU]HXJW XQG NDQQ EHU GHQ 3RUW 45678 DQJHVSURFKHQ ZHUGHQ 0LW GHP $XIUXI GHU 0HWKRGH accept ZLUG GDV ServerSocket2EMHNW LQ HLQHQ :DUWH]XVWDQG YHUVHW]W (V ZDUWHW DP 3RUW 45678 ELV HLQH 9HUELQGXQJVDQIRUGHUXQJ HLQJHKW 8P GLH 'DWHQ GHV &OLHQWV OHVHQ ]X N QQHQ ZLUG GLH 0HWKRGH getinputstream DXIJHUXIHQ ZHOFKH HLQ InputStream 2EMHNW ]XU FNJLEW 'XUFK GLH 6FKDFKWHOXQJ LQ HLQHQ BufferedReader LVW GDV /HVHQ YRQ =HLFKHQNHWWHQ P JOLFK 'LH 0HWKRGH readline OLHIHUW HLQH YRP &OLHQW EHUWUDJHQH =HLOH 'LHVH ZLUG DXI GHU.RQVROH DXVJH JHEHQ :HQQ 6LH EHLVSLHOVZHLVH -%XLOGHU DOV (QWZLFNOXQJVXPJHEXQJ QXW]HQ NDQQ HV ] % XQWHU /LQX[ YRUNRPPHQ GDVV GDV =HLOHQHQGH EHL GHU 'DWHQHLQJDEH GHV &OLHQWV QLFKW HUNDQQW ZLUG 6WDUWHQ 6LH LQ GLHVHP )DOO GDV EHU VHW]WH 3URJUDPP EHU GLH.RQVROH 'HU EHVFKULHEHQH 6HUYHU LVW VHKU HLQIDFK DXIJHEDXW XQG NDQQ QXU HLQHQ &OLHQW EHGLHQHQ,Q GHQ PHLVWHQ )loohq VROOHQ PHKUHUH &OLHQWV JOHLFK]HLWLJ YRQ HLQHP 6HUYHU EHGLHQW ZHUGHQ N QQHQ 'LHV ZLUG UHDOLVLHUW LQGHP I U MH GHQ DQJHPHOGHWHQ &OLHQW HLQ QHXHU 6HUYHU7KUHDG HU]HXJW ZLUG 'HU 6HUYHU7KUHDG OHEW VR ODQJH ZLH GHU &OLHQW GLH 9HUELQGXQJ DXIUHFKWHUKlOW :LUG GLH 9HUELQGXQJ YRP &OLHQW EHHQGHW HQGHW DXFK GHU 7KUHDG Beispiel: com\herdt\java14f\kap03\server2.java,p IROJHQGHQ %HLVSLHO ZXUGH GHU ]XYRU EHVFKULHEHQH 6HUYHU HUZHLWHUW VRGDVV HU PHKUHUH &OLHQW9HUELQGXQJHQ JOHLFK]HLWLJ KHUVWHOOHQ XQG YHUZDOWHQ NDQQ

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung import java.net.*; import java.io.*; import java.util.*; public class Server2 public static void main(string[] args) throws IOException ServerSocket serversocket = new ServerSocket(45678); int clients = 0; System.out.println(">>> Server gestartet, warte auf Client-Verbindungen"); while( true) ServerThread serverthread = new ServerThread(serverSocket.accept(), ++clients); serverthread.start(); System.out.println(">>> warte auf weitere Client-Verbindungen");,Q GHU.ODVVH Server2 LVW QXU GLH main0hwkrgh HQWKDOWHQ GLH HLQ ServerSocket2EMHNW HU]HXJW XQG DXI &OLHQW$QIRUGHUXQJHQ ZDUWHW 'LH.RPPXQLNDWLRQ PLW GHP &OLHQW ZLUG YRQ HLQHP 6HUYHU7KUHDG EHUQRPPHQ 'HU 6HUYHU6RFNHW serversocket ZLUG HU]HXJW XQG NDQQ EHU GHQ 3RUW 45678 DQJHVSURFKHQ ZHUGHQ 'DV $WWULEXW clients ]lkow GLH DQJHPHOGHWHQ &OLHQWV,Q HLQHU (QGORVVFKOHLIH ZLUG DXI &OLHQW$QIRUGHUXQJHQ PLWWHOV GHU 0HWKRGH accept JHZDUWHW 6WHOOW HLQ &OLHQW HLQH 9HUELQGXQJ KHU ZLUG HLQ QHXHU 6HUYHU7KUHDG HU]HXJW 'HP.RQVWUXNWRU GHU.ODVVH ServerThreads ZHUGHQ GDV YRQ accept JHOLHIHUWH Socket2EMHNW XQG GLH 1XPPHU GHV &OLHQWV EHU JHEHQ 'HU 6HUYHU7KUHDG I U GDV DQJHPHOGHWH 2EMHNW ZLUG JHVWDUWHW 'DQDFK JHKW GHU 6HUYHU ZLHGHU LQ GHQ :DUWH]XVWDQG EHU class ServerThread extends Thread private Socket clientsocket; private BufferedReader in; int nr; public ServerThread(Socket clientsocket, int nr) throws IOException this.clientsocket = clientsocket; this.nr = nr; in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); System.out.println("--> Client " + nr + "angemeldet"); public void run() String s; try while((s = in.readline())!= null) System.out.println(nr + " > " + s); System.out.println("<-- Client " + nr + " abgemeldet"); clientsocket.close(); catch (Exception ex)

Netzwerkzugriffe 3 'LH.ODVVH ServerThread LVW YRQ GHU.ODVVH Thread DEJHOHLWHW ) U MHGHQ QHX DQJHPHOGHWHQ &OLHQW ZLUG HLQ QHXHV 2EMHNW GLHVHU.ODVVH HU]HXJW ) U GLH.RPPXQLNDWLRQ PLW GHP &OLHQW ZLUG HLQ Socket 2EMHNW EHQ WLJW ZHOFKHV GHP.RQVWUXNWRU GHU.ODVVH EHUJHEHQ ZHUGHQ PXVV (V ZLUG GHU,QVWDQ]YDULDEOHQ clientsocket ]XJHZLHVHQ 8P GLH 'DWHQ GHV &OLHQWV ]X HPSIDQJHQ ZLUG HLQ BufferedReader GHILQLHUW 'LH,QVWDQ]YDULDEOH nr LVW GLH DNWXHOOH 1XPPHU GHV &OLHQWV 6LH ZLUG YHUZHQGHW XP GLH $XVJDEHQ GHU 7KUHDGV YRQHLQDQGHU XQWHUVFKHLGHQ ]X N QQHQ (V ZHUGHQ MHW]W 'DWHQ DXV GHP (LQJDEHVWURP GHV &OLHQWV JHOHVHQ ELV GLH 0HWKRGH readline GHQ :HUW null OLHIHUW 'DV LVW GDQQ GHU )DOO ZHQQ GDV (QGH GHV 'DWHQVWURPHV HUUHLFKW LVW G K GHU $XV JDEHVWURP YRP &OLHQW JHVFKORVVHQ ZXUGH 'LH 9HUELQGXQJ ]XP &OLHQW ZLUG JHVFKORVVHQ ) U HLQH VLFKHUH 'DWHQ EHUWDJXQJ ZXUGH PLW GHP -6( GLH.ODVVH javax.net.ssl.sslsocket EHUHLWJH VWHOOW :HQQ 6LH GLHVH.ODVVH YHUZHQGHQ ZHUGHQ GLH 'DWHQ YRU GHU hehuwudjxqj EHU GLH 6RFNHW9HUELQGXQJ YHUVFKO VVHOW 3.3.3 Chat-Verbindung 0 FKWHQ PHKUHUH 3HUVRQHQ PLWHLQDQGHU FKDWWHQ VLFK EHU GDV,QWHUQHW XQWHUKDOWHQ LVW HLQH 9HUELQGXQJ YRQ PHKUHUHQ &OLHQWV ]X HLQHP &KDW 6HUYHU QRWZHQGLJ $OOH &OLHQWV PHOGHQ VLFK EHL HLQHP 6HUYHU DQ XQG GHU 6HUYHU UHJLVWULHUW GLH &OLHQWV 'LH 1DFKULFKWHQ GLH GHU 6HUYHU YRQ HLQHP &OLHQW HUKlOW ZHUGHQ YRQ LKP DQ DOOH DQGHUHQ &OLHQWV ZHLWHUJHOHLWHW 'HU 6HUYHU PXVV IROJHQGH $XIJDEHQ HUI OOHQ ; (U PXVV VWlQGLJ DXI GLH $QPHOGXQJ YRQ &OLHQWV ZDUWHQ ; (U HU]HXJW I U MHGHQ &OLHQW HLQHQ 7KUHDG GHU GLH.RPPXQLNDWLRQ PLW LKP EHUQLPPW ; $OOH DQJHPHOGHWHQ &OLHQWV ZHUGHQ LQ HLQHU /LVWH &ROOHFWLRQ UHJLVWULHUW ; -HGHU &OLHQW7KUHDG HPSIlQJW GLH 1DFKULFKWHQ VHLQHV &OLHQWV ; -HGHU &OLHQW7KUHDG PXVV GLH 0HWKRGH GHV 6HUYHUV DXIUXIHQ GLH GLHVH 1DFKULFKW DQ GLH 7KUHDGV DOOHU DQGHUHQ DQJHPHOGHWHQ &OLHQWV VFKLFNW ; 'LHVH 0HWKRGH GHV 6HUYHUV GXUFKOlXIW VHTXHQ]LHOO GLH /LVWH GHU &OLHQWV XQG EHUPLWWHOW GDEHL GHP 7KUHDG MHGHV DQJHPHOGHWHQ &OLHQWV GLH 1DFKULFKW ; 'LH 7KUHDGV JHEHQ GLH 1DFKULFKW DQ LKUHQ &OLHQW ZHLWHU ; 0HOGHW VLFK HLQ &OLHQW DE ZLUG HU DXV GHU /LVWH HQWIHUQW (LQ &OLHQW PXVV DQ GHQ 6HUYHU DQJHSDVVW VHLQ ; (U EDXW HLQH 9HUELQGXQJ EHU GHQ 3RUW DXI EHU GHQ GHU 6HUYHU DXI 9HUELQGXQJHQ ZDUWHW ; (U PXVV HLQHQ (LQ XQG HLQHQ $XVJDEH6WUHDP I U GHQ 6RFNHW GHILQLHUHQ ; 'LH (LQJDEHQ GHV %HQXW]HUV ZHUGHQ EHU GHQ $XVJDEH6WUHDP DQ GHQ 6HUYHU JHVFKLFNW ; 'LH 1DFKULFKWHQ GHU DQGHUHQ &OLHQWV ZHUGHQ DXV GHP (LQJDEH6WUHDP JHOHVHQ XQG DQJH]HLJW ; 'DPLW GHU 6HUYHU ZHL ZDQQ GHU &OLHQW VLFK DEPHOGHW VFKLFNW LKP GHU &OLHQW HLQH 1DFKULFKW ] % GLH =HLFKHQNHWWH ende Notizen

3 Java 2 SDK v 1.4.0 - Fortgeschrittene Programmierung (LQH YROOVWlQGLJH,PSOHPHQWDWLRQ HLQHU HLQIDFKHQ 9HUVLRQ HLQHV &KDW6HUYHUV XQG HLQHV &KDW&OLHQWV ILQGHQ 6LH LQ GHQ %HLVSLHOHQ GLHVHV.DSLWHOV &KDW6HUYHUMDYD XQG &KDW&OLHQWMDYD 3.4 Anwendungsbeispiel: Mail versenden 3.4.1 Mail über eine Socket-Verbindung senden (LQH SUDNWLVFKH $QZHQGXQJ GHU 6RFNHW3URJUDPPLHUXQJ LVW GDV 9HUVHQGHQ YRQ (0DLOV 'D]X PXVV HLQH 9HU ELQGXQJ ]X HLQHP 0DLO6HUYHU EHU GHQ 3RUW KHUJHVWHOOW ZHUGHQ 'HU 3RUW GLHQW GHU hehuwudjxqj YRQ ( 0DLOV EHU GDV 60733URWRNROO ) U GLH hehuplwwoxqj NDQQ MHGHU 0DLO6HUYHU JHQXW]W ZHUGHQ GHU EHU 6073 NRPPXQL]LHUW (LQHQ NRVWHQORVHQ 0DLO6HUYHU I U :LQGRZV6\VWHPH N QQHQ 6LH VLFK EHLVSLHOVZHLVH XQWHU IROJHQGHU $GUHVVH DXV GHP,QWHUQHW ODGHQ KWWSZZZDUJRVRIWFRPDSSOLFDWLRQVPDLOVHUYHUGRZQORDGDVS $XI GHP 0DLO6HUYHU P VVHQ 6LH HLQ.RQWR HLQULFKWHQ EHU ZHOFKHV GLH 1DFKULFKWHQ HPSIDQJHQ ZHUGHQ N Q QHQ 0LW HLQHU (0DLO6RIWZDUH ZLH ] % 2XWORRN ([SUHVV N QQHQ 6LH GLH (0DLOV YRQ,KUHP 0DLO6HUYHU DE KROHQ %HL HLQHP 0DLO6HUYHU NDQQ GDV 3UREOHP DXIWUHWHQ GDVV 0DLOV HPSIDQJHQ ZHUGHQ GLH GHQ 6HUYHU EHVFKlIWL JHQ XQG GHQ %HWULHE I U HLQLJH =HLW ODKP OHJHQ RGHU GLH )HVWSODWWHQ I OOHQ VR JHQDQQWH 6SDP0DLOV 9LHOH NRPPHU]LHOOH 0DLO6HUYHU VLFKHUQ VLFK JHJHQ GLHVH 0DLOV DE LQGHP VLH QXU (0DLOV YRQ YHUWUDXHQVZ UGLJHQ 'RPlQHQ RGHU,3$GUHVVEHUHLFKHQ DQQHKPHQ ) U GDV 6HQGHQ HLQHU 0DLO PXVV ]XQlFKVW GLH 9HUELQGXQJ ]XP 0DLO6HUYHU KHUJHVWHOOW ZHUGHQ 'DQDFK ZLUG GLH 1DFKULFKW LP 6073)RUPDW JHVHQGHW (LQH 1DFKULFKW LP 6073)RUPDW KDW IROJHQGHQ $XIEDX HELO hostname sender MAIL FROM e-mail-adresse absender RPCT TO e-mail-adresse empfänger DATA Æ Beginn des Nachrichtenteils From: e-mail-adresse absender To: e-mail-adresse empfänger Subject: betreff Æ Leerzeile als Trennung des Headers von der Nachricht Nachricht mit beliebig vielen Zeilen. Æ Punkt als Endezeichen für die Nachricht QUIT ; 'HU QLFKW IHWW JHVFKULHEHQH 7H[W LVW GXUFK GLH HQWVSUHFKHQGHQ $QJDEHQ ]X HUVHW]HQ 'LH PLW HLQHP 3IHLO JHNHQQ]HLFKQHWHQ 7H[WH VLQG.RPPHQWDUH GLH QLFKW EHUQRPPHQ ZHUGHQ G UIHQ ;,P 1DFKULFKWHQWHLO VROOWHQ QRFKPDOV GLH $QJDEHQ ]X $EVHQGHU XQG (PSIlQJHU VRZLH GHU %HWUHII VWH KHQ 'LHVH,QIRUPDWLRQHQ ZHUGHQ LP (LQJDQJVIHQVWHU GHV 0DLO3URJUDPPV DOV $EVHQGHU XQG %HWUHII DQ JH]HLJW ; :LFKWLJ LVW HV GHQ.RSI GHV 1DFKULFKWHQWHLOV GXUFK HLQH /HHU]HLOH YRP HLJHQWOLFKHQ 1DFKULFKWHQWH[W ]X WUHQQHQ ; 'HU 3XQNW YRU GHP %HIHKO QUIT NHQQ]HLFKQHW GDV (QGH GHU 1DFKULFKW Beispiel: com\herdt\java14f\kap03\testmail.java 'LHVHV 0DLO3URJUDPP HU]HXJW DXV GHQ YRP %HQXW]HU EHU GLH.RQVROH HLQJHJHEHQHQ,QIRUPDWLRQHQ $EVHQ GHU (PSIlQJHU 0DLO6HUYHU %HWUHII XQG 7H[W HLQH (0DLO XQG YHUVFKLFNW GLHVH DQ GHQ DQJHJHEHQHQ 0DLO 6HUYHU

Netzwerkzugriffe 3 import java.net.*; import java.io.*; public class TestMail static PrintWriter out; static BufferedReader in; public static void main(string[] args) System.out.println("Dieses Programm verschickt Ihre E-Mail"); try in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Mail von: "); String von = in.readline(); System.out.print("Mail an: "); String an = in.readline(); System.out.print("Mailserver: "); String mailserver = in.readline(); System.out.print("Betreff: "); String betreff = in.readline(); System.out.print("Nachricht: "); String nachricht = in.readline(); Socket socket = new Socket(mailServer, 25); out = new PrintWriter(socket.getOutputStream()); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String hostname = InetAddress.getLocalHost().getHostName(); sende(null); sende("helo " + hostname); sende("mail FROM: " + von); sende("rcpt TO: " + an); sende("data"); out.println("from: " + von); out.println("to: " + an); out.println("subject: " + betreff); out.println(); out.println(nachricht); sende("."); socket.close(); catch(ioexception ex) ex.getmessage(); public static void sende(string s) throws IOException if(s!= null) System.out.println(s + "\n"); out.println(s); out.flush(); String antwort; if(antwort = in.readline())!= null) System.out.println(antwort + "\n");