- Studentshelp.de

Werbung
INTERNET - Programmierung
TCP/IP
HTML
CGI
JAVA
PRRU - 4.Jg (Prozeßregelung / Rechnerverbund)
Version 3 vom 30.August 1998
Lehrer: D.I. Reinhard SIMON
Htl Wr. Neustadt, Abt. EDVO
PRRU Literaturhinweise
Kühnel Ralf
Die JAVA 1.1 Fibel
ADDISON-WESLEY
CORNELL/HORSTMANN
JAVA bis ins Detail
Heise
1 NETZWERKE: GRUNDLAGEN (WIEDERHOLUNG GDVA)
3
1.1 Datentransport zwischen Computern
3
1.2 Verschiedene Übertragunsmedien
3
1.3 Synchronisation des Datentransports
4
1.4 Datenfernübertragung(DFÜ)
6
1.5 Das OSI-Modell von ISO
7
1.6 LAN (Local Area Network) lokales Netzwerk (digital)
8
1.7 WAN (Wide Area Network) Weitverkehrsnetz
8
1.8 INTERNET
8
1.9 Netz-Topologien
10
1.10 Netzprotokolle
11
2 TCP/IP
12
2.1 Einleitung
12
2.2 Zeitmultiplexverfahren im Internet und Routing
13
2.3 TCP/IP-Protokolle
14
2.4 Internet-Adressen (IPV4)
15
2.5 DNS (Domain Name System) des Internet
2.5.1 IP-Masquerade
16
17
2.6 TCP/IP-Anwendungen und TCP/IP konfigurieren
2.6.1 l1:/etc/rc.config:
2.6.2 l1: /etc/exports:
2.6.3 l1:Ausgabe von /sbin/route:
2.6.4 l1:Ausgabe von /usr/sbin/traceroute:
2.6.5 l1:Ausgabe von /sbin/ifconfig:
2.6.6 l1:Ausgabe von /usr/sbin/arp -a und ping
2.6.7 sun:/etc/netmasks:
2.6.8 sun:/etc/defaultdomain:
2.6.9 sun:/etc/defaultrouter:
2.6.10 sun:/etc/named.data/named.hosts:
2.6.11 sun:Ausgabe von usr/bin/netstat -r:
2.6.12 CISCO (Internet-Router)
2.6.13 LAN WORKPLACE FOR DOS, NET.CFG :
2.6.14 TRUMPET WINSOCK
18
18
19
19
19
20
20
20
20
20
20
21
21
21
22
3 HTML
23
3.1 URLs
3.1.1 HTTP
3.1.2 MIME
Internet-Programmierung (TCP/IP, JAVA, HTML)
23
23
23
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 2
3.2 WWW-Browser
23
3.3 HTML: Struktur-Tags, Überschriften, Umbrüche
24
3.4 HTML:Listen, Zeichenformatierung
24
3.5 HTML: Grafiken, Hyperlinks, Java-Applets referenzieren
24
3.6 CGI-Skripte
3.6.1 Technik ohne JAVA:
25
25
3.7 WWW-Server Apache konfigurieren
26
4 JAVA
28
4.1 Die JAVA-Klasse applet
28
4.2 java.net.Socket
29
4.3 java.net.URL
32
1 Netzwerke: Grundlagen (Wiederholung GDVA)
1.1 Datentransport zwischen Computern
⇒ Simplexbetrieb (Richtungsbetrieb)
Die Übertragung der Daten (DÜ) erfolgt nur in einer Richtung. Beispiele: Radio, TV. Diese Art der DÜ
besitzt in der EDV praktisch keine Bedeutung.
⇒ Halbduplex (Wechselbetrieb)
Der Sender wird abwechselnd zum Empfänger und der Empfänger zum Sender. Die in dieser
Betriebsart kommunizierenden Endgeräte müssen also synchronisiert zwischen Sende- und
Empfangsbetrieb umschalten. Bei Endgeräten älterer Bauart ist diese Betriebsart noch verbreitet.
Beispiele: Wechselsprechanlagen, CB-Funk, Großrechnerterminals.
⇒ Vollduplex (Gegenbetrieb)
Senden und Empfangen ist gleichzeitig möglich.
Diese Betriebsweise ist bei modernen
Datenübertragungsverfahren üblich.
Beispiele: Serielle DÜ zwischen zwei Rechnern, Datennetze, Telefon, usw.
⇒ Zeitmultiplexverfahren: Bei digitaler Übertragung können verschiedene Informationen
zeitlich ineinander verschachtelt werden.
1.2 Verschiedene Übertragunsmedien
⇒ Koaxialkabel
Ein Koaxialkabel besteht aus einem Leiterdraht, der in eine Kunststoffmasse eingebettet ist. Um diesen
Kunststoff ist ein Drahtgeflecht gewickelt, das der Abschirmung des Innenleiters dient. Das Ganze ist
zusätzlich von einem Mantel umgeben. Koaxialkabel werden unter anderem als Verbindung zwischen
Fernseher und Dachantenne verwendet. Eingesetzt werden diese Kabel beim „Thin" Ethernet, das wir
auch hier in der HTL im Einsatz haben. Datentransferrate: 10MBit/s.
⇒ Verdrillte Kupferkabel (Twisted Pair)
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 3
Verdrillte 2- oder 4-Drahtleitungen aus Kupfer sind das traditionelle Übertragungsmedium der
Fernmeldetechnik. Eingesetzt werden diese Kabel im Ethernet und in Token Ring Netzwerken der Firma
IBM. Dabei werden innerhalb der Leiterpaare die Datenbits komplementär übertragen. Damit ist schon
ein erster Schutz vor Datenübertragungsfehlern und Leitungsstörungen gegeben.
Datentransferrate: 10 MBit/s oder 100MBit/s.
⇒ Glasfaserkabel
Schutz
Mantel
Verfahren: Die elektrischen Signale
werden über einen elektrooptischen
Kern
Wandler (Elektroluminiszenzdioden =
LED
oder
Laserdioden)
in
Mantel
Lichtsignale umgesetzt und über ein
Schutz
Glasfaserkabel übertragen.
Am
Ende des Kabels werden die Lichtsignale von einem optoelektrischen Wandler (Fotodiode) wieder in
elektrische Signale zurückgewandelt.
Das Prinzip der Übertragung beruht auf der totalen Reflexion. Eine optische Faser besteht aus zwei
Regionen. Die innere Region, der Kern, hat eine höhere Phasenbrechzahl als die äußere Region, der
Mantel. Wird nun Licht in einem bestimmten Winkel in den Glaskern eingespeist, dann wird der
Lichtstrahl aufgrund der unterschiedllichen Phasenbrechzahl an der Grenze zwischen Kern und Mantel
vollständig reflektiert. Durch diese totale Reflexion bewegt sich der Lichtstrahl innerhalb der Glasfaser
fort.
Vorteile:
Nachteile:
- geringe Verluste bei der Übertragung, d. h. größere Entfernungen möglich
- hohe Übertragungsgeschwindigkeiten (einige GBit/s, Monomode)
- sehr geringe Störanfälligkeit (immun gegenüber elektromagnetischen Feldern)
- sehr hohe Abhörsicherheit
- kleiner Durchmesser (gute Biegsamkeit, einfach zu verlegen)
- geringes Gewicht
- große allgemeine Sicherheit (kein Funkenschlag möglich, daher in explosionsgefährdeten
Gebieten einsetzbar)
- Stationsanschlüsse bringen Probleme (Energieverlust, optische Reflexionen)
- aufwendige Anschlußtechnik notwendig (AUI-Adapter)
⇒ Richtfunk und Satelliten
Eine Übertragung durch die Luft ist mit Hilfe von lnfrarotsendern, Laserstrahlen, Mikrowellen und
Radiosendern möglich.
Die Mobilfunknetze der Post übertragen die Daten mit elektromagnetischen Wellen. Wellenlänge x
Frequenz = Lichtgeschwindigkeit.
Eine Richtstrecke muß vorhanden sein. Die unterschiedlichen Netze (C-Netz, D-Netz, GSM) liegen auf
eigenen Frequenzbereichen.
Die Datenübertragungssoftware der Vermittlungsrechner der Post müssen Störungen bei der Übertragung
korrekt behandeln.
1.3 Synchronisation des Datentransports
Damit die vom Sender übermittelte Information von einem Empfänger wieder korrekt interpretiert werden
kann, ist eine Synchronisation zwischen beiden notwendig. Die im folgenden dargestellten Verfahren
unterscheiden sich im wesentlichen dadurch,
- wie diese Synchronisation, d. h. die Erzeugung eines Gleichlaufs zwischen Quelle (Sender) und Senke
(Empfänger) hergestellt wird und
- wie lange dieser Gleichlauf anschließend gesichert ist, bzw. in welchen Abständen neu synchronisiert
werden muß.
⇒ Bei synchroner Datenübertragung ist der Gleichlauf zwischen Sender und Empfänger über eine längere
Zeitdauer, während der Übertragung einer ganzen Folge von Zeichen, gewährleistet. Derartige
Zeichenfolgen werden Übertragungsblöcke genannt. Die Synchronisation erfolgt durch Übertragung
spezieller Synchronisationszeichen. Danach beginnt die Übertragung eines Blocks. Im allgemeinen ist
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 4
ein Block durch Steuerzeichen begrenzt (z. B. STX - Start of Text, ETX - End of Text) und durch ein oder
mehrere Prüfsummenbytes abgesichert.
Vorteil: Bessere Leitungsausnutzung, weil der Nutzdatenanteil größer ist
Nachteil: Höhere Anforderungen an Sender und Empfänger
⇒ Bei asynchroner Datenübertragung, auch Start-Stop-Verfahren genannt, ist eine zeichenorientierte
Übertragungsart, bei der die Synchronisation zwischen Sender und Empfänger am Anfang und am Ende
jedes übertragenen Zeichens mittels Start und Stopbits hergestellt wird. Die Zeitabstände zwischen den
einzelnen Zeichen können unterschiedlich lang sein.
Vorteil:
Gleichlaufanforderungen an Sender und Empfänger sind verhältnismäßig gering, so daß sie
mit geringem technischen Aufwand realisiert werden können.
Ein großer Teil der Übertragungskapazität (etwa 30 %) wird für die Synchronisation verwendet. Die
Übertragung ist empfindlich gegen Signalverzerrungen, daher nur für geringe Geschwindigkeiten
geeignet.
Beispiel: DÜ über RS232-Schnittstelle
Stb
1
2
3
4
5
.
.
n
Pb
Stop
Asynchroner
⇒ ATM
Transfer
Mode
Wird für Hochgeschwindigkeitsübertragung mit 133 Mbit/s verwendet. Einführung erfolgte mit der
Übertragung von Bild, Sprache und Daten in öffentlichen Netzen (Breitbandnetze).
Die Daten werden in Pakete verpackt und asynchron zu ihrem Ziel vermittelt.
Stb ... Startbit
Pb ... Paritätsbit
Stop ... Stopbit
Übertragungsgeschwindigkeit
Unter Übertragungsgeschwindigkeit versteht man die Anzahl der pro Zeiteinheit übertragenen binären
Signale (Brutto-Datenübertragungsrate). Die Einheit ist Bit pro Sekunde (Bit/s oder bps). Ein Baud ist
eine Übertragungseinheit pro Sekunde. Bei digitaler Übertragung entspricht ein Baud einem Bit pro
Sekunde. Bei analoger Übertragung muß das nicht der Fall sein, weil in eine Übertragungseinheit mehr
als ein Bit kodiert sein können.
Transfergeschwindigkeit
Darunter versteht man die Anzahl der übertragenen Datenbits je Zeiteinheit, welche vom Empfänger als
brauchbar akzeptiert werden (Netto-Datenübertragungsrate).
Verminderung der Transfergeschwindigkeit gegenüber der Übertragungsgeschwindigkeit:
1. Start- und Stopbits bei asynchroner DÜ
2. Synchronisations- und Blockbegrenzungszeichen bei synchroner DÜ
3. Prüfinformationen wie Paritätsbit und Prüfsummen
4. Fehleranfälligkeit des Übertragungsmediums
5. verwendeten Code
6. Verpackung bei ATM
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 5
1.4 Datenfernübertragung(DFÜ)
Verbindung von einem Computer zu anderen Computern, entfernten Druckern oder Terminals, wenn
Entfernungen von über 50 m zurückgelegt werden. Außerhalb eines Grundstückes unterliegt die Herstellung
des Übertragungsmediums zumeist einem Monopol der Post. Im Jahre 1995 wurde in Österreich der erste
private Betreiber eines Mobilfunknetzes zugelassen.
Bsp.: Die Post genehmigt ein Modem und führt die Übertragung durch. Es wird das bereits bestehende
Telefonnetz genutzt. Die Post unterhält auch die Datennetze Datex-P (paketvermittelnde DFÜ) und Datex-L
(leitungsvermittelnde DFÜ).
Bei Telefonleitungen ist zu unterscheiden zwischen
⇒ Wählleitung
Die Verbindung wird, wie beim Telefonieren, aufgebaut und besteht nur für die Übertragungsdauer. Die
Übertragungsgeschwindigkeit beträgt 2400 Baud. Grundgebühr und Gebühr pro verbrauchte Einheit sind
zu bezahlen.
⇒ Standleitung
Ist eine ständige Verbindung der Partner. Sie hat den Vorteil, daß der Partner immer erreichbar ist und
man von anderen Teilnehmern nicht gestört werden kann. Für Standleitungen ist eine monatliche
Pauschale zu bezahlen.
⇒ ISDN Integrated Services Digital Network
Ein ISDN-Anschluß besteht aus einem 16KBit Steuerkanal und zwei 64KBit Datenkanälen. Die
Übertragung von Sprache und Daten erfolgt in digitaler Form. Ein MODEM ist nicht notwendig. Die
Verbindung wird nur dann aufgebaut, wenn tatsächlich Daten gesendet oder empfangen werden. Danach
wird die Verbindung nach einer einstellbaren Zeit wieder abgebaut. Im Stand-By Modus fallen keine
Gesprächsgebühren an. Kommt ein weiteres Datenpaket, garantiert die Post die Verbindungsaktivierung
in 0.5 Sekunden. Diese Form hat sich in Europa durchgesetzt (EURO-ISDN)
⇒ ATM - Asynchroner Transfer Mode
Ist für die Hochgeschwindigkeitsübertragung von Bild, Sprache und Daten geeignet.
Analoge Übertragung von Daten mit MODEM
Um Daten über eine analoge Telefonleitung übertragen zu können, müssen sie in eine geeigneter Form
umgewandelt (moduliert) und wieder zurückgewandelt (demoduliert) werden. Modems sind Geräte zum
Umwandeln digitaler Daten in analoge und umgekehrt, die dann übertragen werden. Da in ein analoges Baud
mehrere Bits gepackt werden können, gibt es verschiedene Geschwindigkeitsstandards:
9600 bps, 14400 bps, 28800 bps und 56000 bps.
Müssen mehrere Terminals an einer Fernverbindung angeschlossen werden, so müssen Konzentratoren
(z.B. Terminal-Server) eingesetzt werden, die die ankommende Daten sammeln und weiterleiten.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 6
1.5 Das OSI-Modell von ISO
1980 wurde von der ISO, einem Internationalen Normungsgremium, das OSI- 7 Schichten-Protokoll
verabschiedet. OSI: Open System lnterconnect, also eine offenes herstellerunabhängiges Netzwerkprotokoll.
Ist anwendungsspezifisch.
(z.B. Netscape)
7.)Verarbeitungsschicht
6.) Darstellungsschicht
5.) Kommunikationsschicht
Stellt Sprachmittel zur
Verfügung.
(z B ASCII HTML Dokumente)
Eröffnet, kontrolliert und beendet
die Sitzungen.(z.B. login, logout)
Regelt den Datenfluß zwischen
Endbenutzern(z.B. Datenpakete)
4.) Transportschicht
Koppelt die gesicherten
Verbindungen,
die über Zwischencomputer gehen.
3.) Vermittlungsschicht
2.) Sicherungsschicht
1.) Bitübertragungsschicht
Sichert die ungesicherten
Verbindungen.
(z.B. CSMA/CD für Busnetze oder
Token Passing für Ringnetze,
HDLC,X.75 für Televonleitung)
Ungesicherte Verbindungen
zwischen Computern, zur
Übertragung von Bits. (z.B. RS232)
Geräte, die die Verbindung zwischen Netzwerken mit unterschiedlichen Protokollen herstellen, orientieren
sich an den Funktionen der entsprechenden Schicht des OSI-Modells:
Schicht 1: Repeater
(Ein eintreffendes Signal wird unverändert wieder ausgesendet)
Schicht 2: Bridge oder Switch (Ein eintreffendes Datenpaket wird nur dann weitergeleitet,
Schicht 3: Router
wenn es an einen Partner in einem anderen Netz adressiert ist. Der
lokale Verkehr wird also nicht weitergeleitet)
Schicht 4-7: Gateway
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 7
1.6 LAN (Local Area Network) lokales Netzwerk (digital)
Diese Netze werden auch Büronetze genannt. Mehrere PCs, Workstations oder Terminals werden mit einer
entsprechenden
Netzwerk-Topologie
mit
Großrechnern,
UNIX-Rechnern
oder
File-Servern
zusammengeschlossen. Jeder Computer des Netzes erhält einen eigenen Adapter (wird mit einer
Netzwerkkarte eingebaut z.B. NE2000), an den die Verbindungskabel angeschlossen werden. Zumeist sind
dies Koaxialkabel für geringe Entfernungen.
In den 70er und 80er Jahren hatte man Großrechenanlagen mit angeschlossenen "dummen" ASCIITerminals (reine I/O Geräte lediglich für ASCII-Zeichen).
Die Netzwerke werden von den
Computerherstellem entwickelt und waren untereinander nicht kompatibel. Verbindungen zwischen einem
Netzwerk der Firma SIEMENS (Transdata-Netzwerk) und einem der Firma IBM (SNA .. Structured Network
Architecture) können nur sehr mühsam über einen Gateway-Computer hergestellt werden.
Mit der Entwicklung der PCs wurden die PCs mit einem File-Server zu sogenannten Client-Server
Netzwerken zusammengeschlossen. ETHERNET entwickelte sich zum Standardnetzwerk. Von der Firma
IBM wurde der TOKEN RING als Konkurrenzprodukt auf den Markt gebracht. Auf den PCs kann man die
Anwendungen mit einer grafischen Oberfläche gestalten. Der File-Server dient zum Laden von Software und
zur Verwaltung zentraler Datenbestände.
Der größte Nachteil dieser Lösung ist der hohe
Betreuungsaufwand für die Installation und Wartung der PCs.
Vom X-Konsortium des MIT wurde Anfang der 90er Jahre das X-Window-System erfunden. Es vereinigt die
Vorteile der Großrechner- und der Client-Server-Netzwerke. Die haben jedoch grafische Oberflächen wie der
PC. Anstelle des File-Servers tritt ein Multi-User /Multitaskingfähiger Rechner unter den Betriebssystemen
UNIX. Als Netzwerk kann weiterhin das ETHERNET verwendet werden.
1.7 WAN (Wide Area Network) Weitverkehrsnetz
Die Netzverbindung geht über öffentlichen Grund und unterliegt damit dem Monopol der Post. Diese Netze
können sich über Kontinente erstrecken.
Bsp.: Netzwerke, die die Niederlassungen von weltweit tätigen Konzernen miteinander verbinden, wie
Versicherung, Fluggesellschaft, Reisebüro mit Filialen, Computerkonzerne.
Netzwerke, über die
Informationen für Kunden oder die Wissenschaft weltweit verteilt werden, wie das INTERNET oder
Compuserve.
CompuServe
Elektronische Enzyklopädie, aktuelles Wetter, Reiseinformationen, medizinische und rechtliche Information,
Email
BTX
BTX ist von der Österreichischen Post. BTX verwendet Datex-P (Paketvermittlung). Die Daten werden in
Form von Datenblöcken über das Telefonnetz geschickt. Es besteht keine durchgehende physikalische
Verbindung vom Sender zum Empfänger. Der BTX-Teilnehmer benötigt einen Computer, Software und ein
Modem. Angeboten wird Email, Telebrief (Ermöglicht das Erstellen und Verschicken von Briefen),
Kontostandabfragen, Telebanking.
1.8 INTERNET
Das weltweit verzweigte Internet wird von keiner zentralen Stelle überwacht. Das Netz wird immer nur im
eigenen Bereich (Site) gewartet und erweitert. Jeder kann daher seinen Rechner oder sein gesamtes
Netzwerk an das Internet anschließen. Im Jahre 1995 waren 3,8 Millionen Sites angeschlossen.
Um im internationalen Netz erreichbar zu sein, muß ein Internet-Anbieter (Provider) den Namen seines
Rechners oder Netzwerks (Domain) beim Name Information Center (Internic) anmelden.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 8
Falls der Name noch nicht vergeben ist, quittiert Internic die Anmeldung mit einem Eintrag ins
Namensregister. Internet-Provider sind Rechner, auf denen Dienste für andere Internet-User zur Verfügung
gestellt werden.
Als einheitliches Netzprotokoll wird TCP/IP verwendet. Unter einem DOS/WINDOWS-PC erfolgt die
Anbindung meist über SLIP (Serial Line Internet Protocol), das eine normale Telefonleitung zu einer InternetLeitung macht. Die Anbindung ans Internet über SLIP erfolgt über das 'Windows Socket API". Diese
Erweiterung des normalen Windows-API (Application Programming Interface) von Windows ermöglicht die
Anbindung von Programmen an TCP/IP.
Werden ganze LANs an das Internet angeschlossen, so erfolgt dieser Anschluß über eine Standleitung oder
einen ISDN-Anschluß. Damit Datenpakete des LANs ins Internet gelangen können und umgekehrt, benötigt
man einen Router. Normalerweise sind Router hardwaremäßig implementiert (z.B. von der Firma CISCO).
Billiger, jedoch nicht so leistungsfähig sind softwaremäßig implementierte Router wie z.B. die Shareware
KA9Q (ISDN/IP-Router für DOS)
Das Internet Protocol IP übernimmt gleichermaßen die Rolle der Post und befördert die einzelnen
Datenpakete über das lnternet zum Adressaten. Die Datenpakete werden nicht direkt, sondern über mehrere
Verteiler, die Router, weitergeleitet. Jeder Router, der ein IP-Paket empfängt, leitet es an einen
Nachbarrechner weiter. Das wiederholt sich, bis der Empfänger erreicht ist. Dieses Verfahren bezeichnet
man als routing (Dynamische Leitwegbildung).
Um das Internet nutzen zu können, braucht man außer der geeigneten Software auch eine
Zugriffsberechtigung zum Internet. Diese wird von Internet-Anbietern verkauft, und macht einen nicht
unerheblichen Teil der Installationskosten aus.
Dienste des Internets:
⇒ Email
⇒ Der WWW-Browser für das World Wide Web bietet eine grafische Oberfläche.(Netscape)
⇒ Sehr gut eignet sich das Internet als Diskussionsforum für EDV-Belange und die Wissenschaft.
⇒ FTP (File-Transfer) mit der Dateiensuchhilfe archie
⇒ Telnet (Terminal Emulation)
Da mit dem Anschluss an das Internet Sicherheitsrisken verbunden sind, werden die Dienste des Internets in
Firmennetzwerken verwendet. Diese Netze nennt man INTRANET. Der Anschluss ans Internet erfolgt mit
Firewalls und Proxy-Server.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 9
1.9 Netz-Topologien
Die Topologie eines Netzwerkes ist die Art und Weise der Verbindung durch Kabeln zwischen den einzelnen
Knoten (Server, Workstations, Gateways, PCs, Drucker).
1.)Ring-Topologie
PC
Plotter
PC
PC
PC
Drucker
Nachteile:
PC
Die Computer sind ringförmig angeordnet, jeder Computer ist mit 2
Computern verbunden. Die Übertragung von Informationen erfolgt von
Computer zu Computer in einer Richtung. Der Absender versieht die
Information mit der Empfangsadresse, der Empfänger versieht die
Nachricht mit einer Empfangsquittung und schiebt sie weiter. Dabei
werden Teile der Nachrichten in den Computern zwischengespeichert
und paketweise weitergeleitet. Der Absender kann so erkennen, ob die
Information empfangen wurde oder nicht.
Vorteile:
Es ist keine Zentrale nötig (jeder Computer übernimmt
Steuerung) Es sind weniger Kabeln als bei der SternTopologie notwendig.
Theoretisch sind beliebig viele
Computer anschließbar.
bei Ausfall einer Station steht das ganze Netz (Abhilfe: Überbrückungsschaltungen)
2.)Stern-Topologie (Großrechnertechnologie)
PC
PC
PC
Alle Computer sind an einen zentralen Vermittlungsrechner
(Konzentrator) angeschlossen, der die Steuerung und
Überwachung des gesamten Kommunikationssystems
PC
SERVER
Plotter
wahrnimmt. Entweder ist das ein spezieller Computer, der nur
für die Kontrolle zuständig ist, oder ein beliebiger
Verarbeitungscomputer, der zusätzlich Kontrollaufgaben
übernimmt.
Drucker
PC
PC
Vorteile: Bei Ausfall eines Computers bleibt das Netz
funktionsfähig Die Hinzunahme oder das Entfernen eines Computers aus dem Netz ist
unproblematisch.
Nachteile:
Bei
Ausfall
der
Zentrale
fällt
auch
das
Netz
aus.
Die Anzahl der Computer ist durch die Leistungsfähigkeit der Zentrale beschränkt.
Aufwendige und teure Verkabelung, da alle Computer mit der Zentrale verbunden werden müssen.
3.)Bus-Topologie
Alle Computer sind an einem Kabel
angeschlossen.
Informationen können
ohne Mithilfe anderer Computer vom
Sender zum Empfänger gelangen. Dies
PC
PC
PC
PC
ist dadurch möglich, da immer aller
Computer des Netzes mithören, aber nur
die an sie adressierten Informationen verwenden. Die PCs unserer HTL sind mit einem Bus vernetzt.
PC
Vorteile:
Nachteile:
Drucker
PC
Plotter
ausfallsicher (einzige Schwachstelle ist der BUS)
einfache Verkabelung
Drucker und Peripheriegeräte können leicht hinzugefügt werden. Bei der Übertragung werden
nur die beteiligten Stationen benötigt.
Abhörsicherheit ist nicht gegeben
Geschwindigkeit ist begrenzt
Es kann nur eine begrenzte Anzahl von Computern an ein Busnetz angeschlossen werden.
4.)Strukturierte Topologie (Derzeitiger Stand der Technik)
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 10
Jedes einzelne Endgerät (PCs, Terminals, Drucker) wird sternförmig an einen zentralen Hub bzw. einen
Konzentrator mit vier paarigen, abgeschirmten Kupferkabeln (Twisted Pair) angeschlossen. Anstelle von
Hubs (Bus-Topologie) werden immer mehr Switches eingesetzt. Dadurch werden Nachrichten nur mehr zu
den tatsächlich betroffenen Stationen gesendet.
Die Konzentratorpunkte werden mit mehreren Glasfaserkabel und einem zusätzlichen Kupferkabel
verbunden, um ein Umstecken der Verbindungen im Fehlerfall zu ermöglichen.
Vorteile:
Nachteile:
Bei
Ausfall
eines
Computers
bleibt
das
Netz
funktionsfähig
Die Hinzunahme oder das Entfernen eines Computers aus dem Netz ist unproblematisch.
Bei Ausfall einer Verbindung kann auf eine weitere Verbindung umgeschaltet werden, da die
Verkabelung redundant ist.
Aufwendige und teure Verkabelung, da alle Computer mit dem Hub verbunden werden müssen.
1.10 Netzprotokolle
Mit der Herstellung von Leitungsverbindungen ist das Netz noch nicht komplett. Für den Betrieb des Netzes
ist spezielle Software nötig, die den Datentransport im Netz organisiert. Diese Software wickelt zwischen den
einzelnen Knoten ein sogenanntes Protokoll (Folge von Steuersignalen) ab, das bewirkt, daß Daten
kollisionsfrei und richtig über die Leitungen transportiert werden.
1.)CSMA/CD (Carrier Sense Multiple Access/Collission Detection) (OSI Schicht 1+2)
Einsatz in Busnetzen mit ETHERNET oder TOKEN RING- Netzen.
Funktion: Der Sender versieht die Information mit einem Transportetikett, aus dem man Sender und
Empfänger der Nachricht erkennen kann. Danach prüft der Sender, ob der Übertragungskanal frei ist. Liegt
kein Signal (Carrier) an, so beginnt er mit der Übertragung. Alle angeschlossenen Computer empfangen die
Nachricht, aber nur der Computer, der seine Adresse im Transportetikett findet, bearbeitet sie weiter.
Es könnte nun der Fall eintreten, daß 2 Computer gleichzeitig feststellen, daß der Übertragungskanal frei ist
und gleichzeitig mit der Übertragung beginnen. In diesem Fall kommt es zum Zusammenstoß der
Nachrichten (Collission). Der Computer, der das als erster feststellt, erzwingt dann durch ein spezielles
Steuersignal den Übertragungsabbruch. Beide Computer warten danach eine durch einen Zufallsgenerator
bestimmte Zeit ab, bevor sie einen neuen Sendeversuch starten.
Einem guten Zeitverhalten bei mittlerer Auslastung steht eine undefinierte maximale Transportzeit
gegenüber.
2.) TOKEN Passing(OSI-Schicht 1+2)
Die Sendeberechtigung wird über einen Steuerblock vergeben, den sogenannten TOKEN, der von einem
Computer zum nächsten weitergegeben wird. Der Computer, der den TOKEN besitzt, kann senden. Nach
durchgeführter Übertragung gibt er den Token weiter.
Einem hohen Vermittlungsaufwand bei niedriger Auslastung steht eine definierte maximale Transportzeit
gegenüber.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 11
2
TCP/IP
2.1 Einleitung
Die Anfänge von TCP/IP reichen in die frühen 70er Jahre, als eine amerikanische Verteidigungsbehörde das
Arpanet, ein experimentelles Netzwerk, gründetet. Später, nachdem dieses Netz mehrere Universitäten
verband, wurde das Protokoll TCP/IP (Transfer Protocol/ lnternet Protocol) entwickelt. Aus dem Arpanet
entwickelte sich das Internet, und danach setzte sich TCP/IP als internationales Netzwerkprotokoll auch
gegen OSI durch. Die OSI-Protokolle der X.400-Normungsreihe haben sich nur im Rahmen von EDIFACT
(Electronic Data Interchange und Faktorierung) durchgesetzt.
TCP/IP-Architektur:
im wesentlichen besteht die TCP/IP-Architektur aus 4 Schichten.
⇒ Die Netzwerkschicht übernimmt die physikalische Datenleitung. Sie setzt auf vorhandene Netzstrukturen
der Schicht 1+2 auf, wie z.B. das ETHERNET mit CSMA/CD. Diese Schicht stellt sicher, daß die Daten
korrekt und an den beabsichtigten Adressaten übermittelt werden.
⇒ Die lnternet-Schicht (IP-Protocol) übernimmt die Herstellung und Überwachung von Netzverbindungen
zwischen verschiedenen Computern. Sie ermöglicht die Kommunikation und die Weitervermittlung von
Informationen zwischen verschiedenen Netzen.(routing über gateways) (Entspricht OSI Schicht 3)
⇒ Die Transportschicht (TCP-Protocol) verfügt über verbindungslose und verbindungsorientierte Protokolle,
die den eigentlichen Datenfluß regeln. (Entspricht OSI Schicht 4)
⇒ Die Applikationsschicht bietet eine Reihe standardisierter Anwendungen wie ping, arp, finger, telnet, ftp,
NFS, NIS, DNS, PPP, WWW, NNTP, IRC und Email, die besondere Stärke von TCP/IP darstellen.
(Entspricht OSI Schicht 4-7)
Der Datenfluß zwischen den verschiedenen Schichten erfolgt durch die Übergabe der Datenpakete. Jede
Schicht dabei ein neues Datenpaket, in dem die empfangenen Daten wieder enthalten sind. Den
hinzugefügten Teil nennt man Header. Diese Header werden dann zur Adressierung und Übertragung
verwendet.
Eine IP-Adresse besteht aus 4 Zahlen zwischen 0 und 255. Jede dieser vier Zahlen enthält, wie bei einer
Postanschrift, eine bestimmte Adreßinformation. Diese Nummern sind schwer zu merken, daher werden sie
in Namen, die Domäne, umgesetzt. Aus 193.81.13.2 wird so der Name ftp.ping.at . Anhand dieser DomainAdresse läßt sich meist das Land (letztes Kürzel) und die Art der Organisation ablesen. (at = Austria, de =
Deutschland, USA hat kein Länderkürzel )
Weiters gilt: com=kommerziell, ac=akademisch, edu=Schulen/Universitäten, net=Provider)
Bei einer Internet-Email-Adresse kommt noch der durch einen Klammeraffen getrennte Benutzername dazu.
[email protected] ist die E-Mail-Adresse des Benutzers r.simon, der Domäne htlwrn.ac.at.
Verzeichnis der gültigen Computer (hosts) der HTL Wr. Neustadt,Abt. EDVO
127.0.0.1
193.170.149.62
193.170.149.158
193.170.149.33
193.170.149.128
193.170.149.151
193.170.149.161
193.170.149.154
193.170.149.155
loopback
#Zum Test, der Rechner wird nicht verlassen
novell1 n1 #Novell-Server Karte für Saal Zuse
novell4 n4 #Novell-Server Karte für Saal Zemanek
U101
#1.PC im Saal Zuse
U401
#1.PC im Saal Zemanek
SUN
#Domain Name Server, Mail Server
Ts1
#Terminal-Server
www
#WWW-Server der HTL
l1
#Linux-Server
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 12
193.170.149.156 Firei
193.170.149.190 Fireo
193.170.149.189 CISCO
#1.Netzwerkkarte Firewall im Segment ZEMANEK
#2.Netzwerkkarte Firewall im Segment NEUMANN
#Router ins Internet
2.2 Zeitmultiplexverfahren im Internet und Routing
File-Transfer
Uni-Wien
U102
Univie.ac.at
U102 Paket 1
U102 Paket 2
U205 Paket 1
U102 Paket 3
U304 Paket 1
t
Cisco-Router ISDN-Leitung
Wien
Cisco NEW-YORK
Bildaufbau
Yahoo
U205
Cisco-Router
Wr. Neustadt
Bildaufbau
IBM.com
U304
IBM.com
Yahoo
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 13
2.3 TCP/IP-Protokolle
⇒ IP (Internet Protocol): verbindungsloses, unzuverlässiges Protokoll für die Auswahl des
Datenübertragungsweges zwischen 2 Rechnern (routing). Mit „ping“ und „traceroute“ wird diese
Verbindung überprüft.
⇒ TCP (Transmission Control Protocol): Protokoll für einen verbindungsorientierten, zuverlässigen
Datentransfer.
⇒ ICMP (Internet Control Message Protocol): für die Übertragung von Fehler- und Diagnoseinformationen.
⇒ ARP und RARP (Reverse Address Resolution Protocol): für die Umsetzung der 32-Bit Internet-Adressen
in die 48-Bit Ethernet(MAC)-Adressen. Um die Ethernet-Adresse eines Hosts zu ermitteln, verschickt ARP
einen Rundruf an alle („Broadcast“)
⇒ TELNET: Terminalemulation. Mit „finger“ wird überprüft, wer von wo auf einem Server arbeitet.
⇒ FTP: File Transfer Protocol
⇒ PPP (Point to Point) : Dient zur Übertragung von Datagrammen über eine serielle Leitung mit dem
Protokoll HDLC (High Level Data Link ) Bei der Konfiguration eines PPP-Clients ist es wichtig, dass die
Authorisierung überprüfbar ist. Dazu dient das PAP(Password Authentication Protocol)
Hier nur ein Beispiel wie sich ein Client über die serielle Schnittstelle an seinen PPP-Server anschließt:
pppd /dev/cua3 38400 crtscts defaultroute (crtscts : Hardwarehandshake wird durchgeführt)
⇒ SMTP (Simple Mail Transfer Protocol): Email
⇒ POP3 (Post Office Protocoll Nummer 3): Dient zum Austausch der emails zwischen Mail-Server und
lokalem Mail-System wie Microsoft-Exchange oder Netscape Navigator.
⇒ NFS (Network File System): verteiltes Dateisystem, das exportierte Dateisysteme von remote-Rechnern
ins lokale Dateisystem „mounten“ kann.
⇒ NIS siehe DNS
⇒ HTTP (Hypertext Transfer Protocol) ermöglicht das WWW (World Wide Web). Siehe HTML.
⇒ NNTP (Net News Transfer Protocol) ermöglicht Newsserver.
⇒ IRC (Internet Relay Chat) ermöglicht Konferenzen im Intenet.
⇒ DHCP(Dynmic Host Configuration Protocol): Die angeschlossenen Hosts eines Teilneztes haben keine
fixen IP-Adressen. Wenn sich ein Host anmeldet, bekommt er vom DHCP-Server dynamisch eine
Nummer zugeordnet. Die IP-Nummer 0.0.0.0 deutet auf DHCP hin. Die Internet-Provider arbeiten mit
dieser Technik, da IP-Nummern eine knapper Ressource sind, und niemals alle Kunden gleichzeitig
arbeiten.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 14
2.4 Internet-Adressen (IPV4)
Es gibt 4 Klassen von Internet-Adressen, wobei durch das Wachstum des Internets bedingt, nur mehr das
Class-C Netz und das CLASS-C-Subnetz wichtig ist.
Class C
110
Class C- 110
Subnetz
5 + 8 + 8 Bit Netzwerkadresse
5 + 8 + 8 + (8-n) Bit Netzwerkadresse
8-Bit lokale Rechneradressen
n -Bit lokale Rechneradressen
Die Vergabe der Internet-Adressen wird auf Ansuchen von einer zentralen Stelle, dem Internic, vergeben und
ist kostenpflichtig (Jahresgebühr).
Class-C-Adressen: 192.1.x bis 223.254.254.x
•
•
•
•
•
•
255.255.255.255
Broadcast-Adresse für das gesamte Internet
255.255.255.224
Class-C-Subnetzmaske wobei n=5 . Bei der Netzmaske sind alle Bits des
Netzwerkteiles auf 1) (224 ergibt sich aus 27 + 26 +25)
193.170.149.255
Broadcast-Adresse unserer Schule
193.170.149.159
Broadcast-Adresse des Segments ZEMANEK
193.170.149.155
Rechner linux1 Netzwerkkarte 1
193.170.149.158
Netzwerkkarte im Novell-Server (Router zwischen Sälen) für Segment Zemanek
Die Adressen und die zugeordneten Namen werden lokal in der Datei /etc/hosts und zentral durch NIS oder
DNS verwaltet.
IPV6 ist derzeit im Standardisierungsprozess und hat folgende Vorteile gegebüber IPV4:
⇒
⇒
⇒
⇒
⇒
⇒
mehr IP-Adressen
leichteres Routing
verbesserte Subnetz-Struktur
automatisches Konfigurieren
verbesserte Sicherheitsfunktionen
Unterstützung von Multimedia und Echtzeitapplikationen
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 15
2.5 DNS (Domain Name System) des Internet
In TCP/IP-Netzwerken wird über die 32-Bit Nummer nnn.nnn.nnn.nnn adressiert. Diese Nummern kann man
sich nicht merken. Daher werden normale Namen wie U104 oder sun vergeben. Hostname-Auflösung
ermittelt die IP-Adresse zu einem Namen. Dazu werden die Bibliotheksroutinen gethostbyname und
gethostbyaddr verwendet. (Resolver-Bibliothek libc)
Bei kleinen Netzwerken wie ETHERNET wird die Hostname-Auflösung über die Datei /etc/hosts
durchgeführt. Diese Datei muß bei jeder Änderung auf allen Rechnern aktualisiert werden, was ab einer
gewissen Anzahl von Rechnern mühsam wird.
Eine Lösung für dieses Problem ist NIS, das Network Information System von SUN. NIS speichert die hostsDatei und weitere Dateien in einer zentralen Datenbasis auf einem NIS-Server. NIS-Clients können von dort
Informationen beziehen. NIS eignet sich für mittelgroße Netze wie LANs, da alle
Hosts zentral verwaltet werden.
Am Beginn des INTERNETS wurden alle Adressen in einer zentralen Datei HOSTS.TXT gespeichert. Diese
Datei wurde vom NIC, dem Network Information Center gewartet. Mit dem Wachstum des Internets gab es
administrative Probleme. Auch der Aufwand, um die HOSTS.TXT zu verteilen, überforderte die Server.
Daher wurde 1984 das DNS eingeführt.
DNS organisiert Hostnamen in einer Hirarchie von Domänen (engl. domain). Eine Domäne ist eine
Sammlung von ‘sites’, die miteinander verwandt sind. sun.htlwrn.ac.at ist vollqualifizierter Domänennamen
(FQDN) der den Rechner sun weltweit eindeutig identifiziert. at steht für Österreich, in den USA entfällt diese
Domäne. ac steht für academic, htlwrn für die HTL Wr. Neustadt. Der Vorteil von DNS besteht darin, daß wir
innerhalb von htlwrn.ac.at unsere Namen und Unterdomänen lokal, also ohne NIC festlegen können.
DNS, eine verteilte Datenbasis
Wie kann eine Anwendung ohne zenrale Autorität feststellen, welche Namen zu welchen Adressen gehören?
Wenn eine Anwendung außerhalb der HTL Wr. Neustadt einen Namen innerhalb unserer Domäne wissen
will, so muß diese Anwendung unseren Domain Name Server „sun.htlwrn.ac.at“ fragen. Diese Anwendung
muß jedoch nicht direkt unseren DNS befragen, sondern befragt den DNS ihrer Domäne, also den lokalen
DNS, der die gefragten Daten liefert. Nehmen wir an, der lokale DNS sei „dns.univie.ac.at“, so befrägt dieser
den DNS von „ac.at“, der den DNS von „htlwrn.ac.at“ befrägt und so die Daten liefert. Um die Netzlast nicht
unnötig zu erhöhen, halten die DNS bekannte Informationen gemäß der „time to live“ (TTL) in einem lokalen
Cache.
Die DNS Datenbasis
Diese enthält nicht nur Hostadressen sondern auch Regeln zum Austausch von Informationen mit anderen
Domain Name Servern, die in der Datei named.hosts abgelegt sind.
Jeder Satz in dieser Datei hat einen gewissen Typ.
Ein „A“-Satz ordnet einem FQDN oder einem lokalen Namen eine IP-Adresse zu.
Ein „CNAME“-Satz ordnet einem „A“-Satz einen weiteren Namen zu.
Der „SOA“-Satz ist der „Start of Authority“ definiert allgemeine Informationen wie z.B. die TTL.
Namen die nicht mit einem Punkt enden sind keine FQDN sondern lokal zur Domäne des DNS.
Der spezielle Name „@“ ist der Name der Domäne (z.B. htlwrn.ac.at)
Der „NS“-Satz definiert einen bekannten Domain Name Server, anschließend kommt ein „A“-Satz.
Der mx-Satz definiert den Mailserver. /etc/mail/aliases ordnet die mail-Benutzer den UNIX-Benutzern zu, so
wird z.B. „r.simon“ die Benutzerkennung sj zugeordnet.
Da es machmal notwendig ist, den Domänennamen zu einer IP-Adresse zu suchen, gibt es auch die
umgekehrte Namensauflösung (reverse lookup). Auf diese Weise kann ein Netzwerkdienst die Identität eines
Netzwerkklienten überprüfen. Diese Angaben stehen in der Datei named.rev.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 16
2.5.1 IP-Masquerade
IPV4-Adressen sind eine knappe und teure Ressource und IPV6 befindet sich noch im
Standardisierungsprozess.
IP-Masquerading bietet eine einfachere Möglichkeit um ein Netzwerk ans Internet anzuschließen wie DNS
mit Class-C-Subnetzen.
Ein spezieller Rechner (z.B. unter linux) wird als Router eingesetzt und ändert die Adressen in den IPPaketen, bevor er sie in das nächste Netz weitergibt. Der Empfänger sieht als Absender nur die Adresse des
Routers und schickt seine Antwort dorthin zurück. Der Router übersetzt die Adressen wieder und verteilt die
Pakete an die eigentlichen Empfänger.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 17
2.6 TCP/IP-Anwendungen und TCP/IP konfigurieren
Übung TCP/IP-Kommandos:
Probieren Sie folgenden Kommandos auf dem Rechner l1:
ping, /usr/sbin/traceroute, finger, domainname, hostname, mail, telnet, ftp
Verwenden Sie die Manualpages unter linux.
Betrachten Sie die Homepage www.htlwrn.ac.at.
Übung TCP/IP-Konfiguration: Dokumentieren sie handschriftlich das Netzwerk der HTL, die folgende
Dateien bzw. Kommandoausgaben enthält. (Ziehen Sie auch die Manualseiten zu Rate.
Auszüge der Datei /etc/hosts finden Sie weiter oben)
⇒ l1: /etc/hosts, /etc/rc.config (Hilfe im yast), /etc/gateways(routing-table), /etc/exports(NFS)
Kommandoausgabe von: /sbin/route, /sbin/ifconfig, /sbin/arp -a
⇒ sun: /etc/netmasks, /etc/defaultdomain, /etc/defaultrouter, /etc/named.data/named.hosts,
Kommandoausgabe von /usr/bin/netstat -r
⇒ cisco
⇒ dos: net.cfg
⇒ windows: trumpet winsocket
2.6.1 l1:/etc/rc.config:
#
# /etc/rc.config
#
# Copyright (c) 1996 S.u.S.E. GmbH Fuerth, Germany. All rights reserved.
#
# Configuration database for shell scripts in /sbin/init.d, /sbin/SuSEconfig
# Hinweis: Diese Datei wird mit dem Konfigurationswerkzeug YAST bearbeitet
#
Es sind nur die TCP/IP-Einträge vorhanden
# Also don't forget to edit the following files:
#
- /etc/lilo.conf
#
- /etc/fstab
#
- /etc/profile
#
- /etc/hosts
#
# start loopback networking? ("yes" or "no")
START_LOOPBACK=yes
# number of network cards: "_0" for one, "_0 _1 _2 _3" for four cards
#
IPADDR_0="193.170.149.155"
IPADDR_1=""
#
# network device names (e.g. "eth0")
#
NETDEV_0="eth0"
NETDEV_1=""
#
# parameteres for ifconfig, if you put "bootp" into it, bootp will
# be used to configure it
# sample entry for ethernet:
IFCONFIG_0="193.170.149.155 broadcast 193.170.149.159 netmask 255.255.255.224"
IFCONFIG_1=""
#
# network address of the devices (e.g. "-net 192.168.81.32" or
# "-host 192.168.81.33")
#
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 18
NETWORK_0="193.170.149.128"
NETWORK_1=""
#
# if this is set, the default route will be set to this gateway
# (e.g. "192.168.81.33")
#
GATEWAY_0="193.170.149.156"
GATEWAY_1=""
#
# setup dummy network device for IPADDR_0? this is useful for non permanent
# network connections (e.g. SLIP, PPP). Some software needs a connection
# to FQHOSTNAME (e.g. plp). (yes, no)
SETUPDUMMYDEV=yes
#
# hostname of the system (full name)
# if zero, and bootp is used above, bootp will also set the hostname
# (e.g. "riemann.suse.de" or "hugo.linux.de")
# don't forget to also edit /etc/hosts for your system
#
FQHOSTNAME=linux1
#
# domain searchlist that should be used in /etc/resolv.conf
# (e.g. "suse.de linux.de uni-stuttgart.de")
# Attention! this has to be filled out, if you want to access a name server
#
SEARCHLIST="sun.htlwrn.ac.at"
#
# space separated list of nameservers that should be used for /etc/resolv.conf
# give a maximum of 3 IP numbers
# (e.g. "192.168.116.11 192.168.7.7")
#
NAMESERVER="193.170.149.151"
# News server.
NNTPSERVER="linux1.htlwrn.ac.at"
# start the inet daemon in multi-user? ("yes" or "no")
# this is needed, if you have to telnet/rlogin to your own machine.
START_INETD=yes
# start portmap? ("yes" or "no")
# this is needed, if the NFS server is started or if NIS is used
START_PORTMAP=yes
# should the NFS server be started on this host? ("yes" or "no")
NFS_SERVER=yes
# start the apache www-server in /local/www/sbin/httpd? ("yes" or "no")
START_HTTPD=yes
2.6.2 l1: /etc/exports:
#exports
/home
www(rw)
2.6.3 l1:Ausgabe von /sbin/route:
Kernel routing table
Destination
Gateway
ipnet1
*
loopback
*
default
Firei
Genmask
255.255.255.224
255.0.0.0
0.0.0.0
Flags
U
U
UG
Metric
0
0
1
Window Use
0
419235
0
1675
0
46553
Iface
eth0
lo
eth0
2.6.4 l1:Ausgabe von /usr/sbin/traceroute:
1
2
3
4
5
Firei (193.170.149.156) 1.995 ms 1.724 ms 1.704 ms
htlwrneu-server (193.170.149.189) 4.516 ms 4.534 ms 4.34 ms
193.170.149.5 (193.170.149.5) 36.378 ms 28.177 ms 28.198 ms
gw2.bmuvie.gv.at (193.170.115.9) 30.645 ms 30.418 ms 30.428 ms
Vienna-RBS.ACO.net (192.153.182.57) 31.213 ms 40.41 ms 31.041 ms
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 19
6
7
8
iris.cc.univie.ac.at (193.171.14.11) 31.518 ms 34.108 ms 31.682 ms
hera.cc.univie.ac.at (131.130.208.2) 31.505 ms 31.454 ms 31.381 ms
ftp.univie.ac.at (131.130.1.4) 33.506 ms 32.104 ms 34.245 ms
2.6.5 l1:Ausgabe von /sbin/ifconfig:
eth0
2.6.6
Link encap:10Mbps Ethernet HWaddr 00:40:C7:55:21:C0
inet addr:193.170.149.155 Bcast:193.170.149.255 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1643374 errors:0 dropped:0 overruns:0
TX packets:1663116 errors:0 dropped:0 overruns:0
Interrupt:11 Base address:0x340
l1:Ausgabe
von /usr/sbin/arp -a und ping
Address
193.170.149.150
193.170.149.151
193.170.149.158
HW type
HW address
10Mbps Ethernet 00:00:0C:3D:DA:7A
10Mbps Ethernet 08:00:20:74:FA:7E
10Mbps Ethernet 00:60:8C:96:EC:10
Flags
C
C
C
Mask
*
*
*
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.3 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.2 ms
--- localhost ping statistics --2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.3 ms
2.6.7 sun:/etc/netmasks:
#
#
network-number
netmask
#
193.170.149.0 255.255.255.224
2.6.8 sun:/etc/defaultdomain:
htlwrn.ac.at
2.6.9 sun:/etc/defaultrouter:
193.170.149.150
2.6.10 sun:/etc/named.data/named.hosts:
; named.hosts 19960205;
;
CONTACT should be an username who feels responsible for the DNS .
;
change all uppercase tokens to Your local names ....
;
@
IN
SOA
sun.htlwrn.ac.at. root.sun.htlwrn.ac.at. (
1995092738; Serial
3600
; Refresh every hours
1800
; Retry every hour
604800 ; Expire after a week
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 20
86400 )
; Minimum ttl of 1 day
IN
NS
sun.htlwrn.ac.at.
IN
NS
ns1.univie.ac.at.
ns1.univie.ac.at.
IN
A
131.130.1.11
htlwrneu-server
IN
A
193.170.149.150
lb
IN
A
127.0.0.1
;
;mailhost
IN
A
131.130.1.19
localhost
IN
CNAME lb.htlwrn.ac.at.
sun
IN
A
193.170.149.151
; Sun
dns
IN
CNAME sun
;
; Segment ZUSE (IP: 193.170.149.33 - 193.170.149.62)
n1
IN
A
193.170.149.62
u101
IN A
193.170.149.33
...
u122
IN A
193.170.149.54
; segment ZEMANEK (bonus computer)
WWW
IN
A 193.170.149.154 ;Www
Linux1 IN
A 193.170.149.155; Linux1 linux1 l1 L1
l1
IN
CNAME Linux1
IN
MX
10
sun.htlwrn.ac.at.
IN
MX
100
email.univie.ac.at.
ppp-host
IN A
193.170.149.193
; CISCO Router
2.6.11 sun:Ausgabe von usr/bin/netstat -r:
Routing Table:
Destination
---------------------localhost
ipnet4
193.170.149.192
BASE-ADDRESS.MCAST.NET
default
Gateway
Flags Ref
Use
Interface
-------------------- ----- ----- ------ --------localhost
UH
0
1727 lo0
SUN
U
3
305 le0
ppp-host
U
2
0 ipd1
SUN
U
3
0 le0
CISCO
UG
0
3192
2.6.12 CISCO (Internet-Router)
interface Ethernet0
description Lokales Ethernet HTL Wr. Neustadt
ip address 193.170.149.150 255.255.255.224
!
interface Serial0
description 64 Kbit Verbindung HTL-Wien 5
ip address 193.170.149.6 255.255.255.252
bandwidth 64
!
ip domain-name htlwrn.ac.at
ip name-server 193.170.149.151
ip route 0.0.0.0 0.0.0.0 193.170.149.5
ip route 193.170.149.32 255.255.255.224 193.170.149.158
ip route 193.170.149.64 255.255.255.224 193.170.149.158
ip route 193.170.149.96 255.255.255.224 193.170.149.158
ip route 193.170.149.192 255.255.255.224 193.170.149.151
2.6.13 LAN WORKPLACE FOR DOS, NET.CFG :
Link driver DE-200
Protocol IPX 0 Ethernet_802.3
Protocol IPX 8137 Ethernet_II
Port 320
Int 5
Netware Dos Requester
preferred server = NETWARE
file handles = 70
Protocol TCPIP
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 21
PATH SCRIPT
PATH TCP_CFG
ip_netmask
ip_address
ip_router
n:\lwp\SCRIPT
n:\lwp\TCP
255.255.255.224
193.170.149.142
193.170.149.158
2.6.14 TRUMPET WINSOCK
Trumpet Winsock Version 2.1 Revision F
Ethernet address = 00:80:C8:24:30:1C
WINPKT packet driver located on vector $62
IP buffers = 32 Packet buffers = 16
My IP = 193.170.149.142 netmask = 255.255.255.224 gateway = 193.170.149.150
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 22
3 HTML
Das World Wide Web (WWW) ist ein Hypertext-System, das in großem Ausmaß über das gesamte Internet
verteilt installiert ist. Dieses System besteht aus Dokumenten, die Verknüpfungen (Hyper-Links) zu anderen
Dokumenten, Dateien und anderen Internet-Ressourcen enthalten.
3.1 URLs
Urls (Uniform Ressource Locators) bestimmen die genaue Adresse der Internet-Ressourcen.
URL-Syntax
http://
Protokoll
www.htlwrn.ac.at :80
/r.simon/index.html
Internet-Rechner
Dokumentadresse
Protokoll-Port-Nummer
Protokolle: ftp, http, shttp (secure), gopher, telnet, news, wais, mailto (E-mail)
3.1.1 HTTP
Das HTTP (Hypertext Transfer Protocol) erlaubt es dem Benutzer, Hyperlinks in den Dokumenten zu
verwenden, um weitere Informationen zu erlangen. Ein WWW-Server antwortet auf entsprechende
Anforderungen, indem er als Antwort eine Datei im MIME-Format zurücksendet.
3.1.2 MIME
Das MIME-Format (Multipurpose Internet Mail Extension) stellt eine Konvention für den Austausch von
Dateien jeglichen Formats dar. Eine MIME-Datei enhält folgende Header-Informationen:
⇒ MIME-Typ, der beschreibt, welcher Art die Daten sind, die die MIME-Datei enthält
⇒ Kodierungstyp, der beschreibt, wie die Daten dekodiert werden können
Bei HTTP kann der Empfänger angeben, welchen MIME-Typ er benötigt, der Server kann die geeignete
Kodierung wählen.
MIME-Typ
application/msword
image/gif
text/html
text/plain
application/zip
Beschreibung
.
Microsoft Word Dokument
GIF-Bild
HTML-Text
ASCII-Text
ZIP-komprimiert
3.2 WWW-Browser
Der wichtigste Browser ist Netscape. Microsoft versucht mit dem Internet-Explorer Anschluss zu finden.
Unter linux ist der freie Browser „arena“ verfügbar.
Übung-Netscape: Probieren Sie die Optionen Netscapes und einige HTML-Dokumente.
Sehen Sie sich die Dokumentation zu HTML und JAVA in der Homepage
http://www.htlwrn.ac.at/r.simon an. Netscape zeigt auf Wunsch die HTML-Sourcen an.
Java-Programme sind auf l1:/home/sj/java vorhanden.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 23
3.3 HTML: Struktur-Tags, Überschriften, Umbrüche
Ein HTML-Dokument besteht aus HTML-Tags, die in ASCII-Text notiert werden. Die Darstellung dieses
Textes erfolgt durch WWW-Browser, dieser beeinflusst massgeblich das Aussehen.
Mehrere Leerzeichen oder Tabulatoren hintereinander werden durch ein einzelnes ersetzt, ausgenommen sie
verwenden spezielle Textformate.
Übung-html-tags: Erstellen Sie ihr 1. HTML-Dokument mit der Darstellung ihrer Person.
Verwenden Sie <HTML> und </HTML> als Beginn und Ende.
Machen Sie einen <HEAD > mit <TITLE> , Kommentar mit <!-- Kommentar -->,
einen <BODY> mit mehreren Überschriften <H1> bis <H6>,
fügen Sie Absätze mit <P> ohne Ende-Tag und Zeilenumbrüche mit <BR> ein und Linien mit
<HR Size=Pixel Width=Pixel|n% Align=Left|Right|Center> ein.
Im BODY kann mit BGCOLOR oder BACKGROUND=“Bilddatei“ der Hintergrund verändert werden.
3.4 HTML:Listen, Zeichenformatierung
Übung-html-listen: Erweitern Sie ihr HTML-Dokument mit der Darstellung ihrer Fähigkeiten und Hobbys.
Verwenden Sie verschiedene Listenformate um diese darzustellen.
Verzeichnisliste
<DIR><LI></DIR>
Geordnete Liste
<OL><LI></OL>
Ungeordnete Liste
<UL><LI></UL>
Menü- Liste
<MENU><LI></MENU>
Definitionsliste
<DL><DT><DD></DL>
Besonders fleissige können noch mit den verschiedenen Textformate experimentieren:
Fettschrift
<B></B>
Hervorgehoben
<EM></EM>
Stark hervorgehoben
<STRONG></STRONG>
Kursivschrift
<I></I>
Text bleibt unverändert <PRE></PRE>
Nicht proportionaler Text
<TT></TT>
Text ausrichten
Align=“Left|Middle|Center“ (Bei mehreren Tags optional verwendbar)
Adresse des Autors
<ADDRESS> </ADDRESS>
Sonderzeichen <>&“ßÜ &lt,> & " ß Ü
Textgröße und -farbe
<FONT SIZE=[1-7]> </FONT> <FONT COLOR=#RGB> </FONT>
Hinweis: HTML unterstützt weiters noch wunderschöne Tabellen und Frames. Frames teilen das Fenster in
mehrere Unterbereiche.
3.5 HTML: Grafiken, Hyperlinks, Java-Applets referenzieren
Grafikdateien vom Typ GIF, JPEG und XBM können mit
<IMG Src=“URL“ Alt=“Text, falls Bild nicht angezeigt werden kann“> eingefügt werden.
<A HREF=“URL“><IMG Src=““></A> fügt die Grafik ein, auf die der Hyperlink verweist.
Video und Sound-Dateien werden in Standard-HTML noch nicht unterstützt.
Hyperlinks (Anker) werden mit <A Href=“URL“> Mit Hyperlink verknüpfter Text </A> definiert.
Der URL kann relativ zum aktuellen Serverpfad oder absolut angegeben werden.
Bsp1: <A HREF=“http://www.htlstpoe.ac.at“> HTL St. Pölten </A>
Bsp2: <IMG align=middle SRC="htlhand.gif"><A HREF="mailto:[email protected]">Write me! </A>
Sie können Verknüpfungen zwischen mehreren Dokumenten wie z.B. ein Inhaltsverzeichnis mit
benannten Ankern aufbauen. <A NAME=“Ankername“> Text </A>. Der URL ist dann #Ankername.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 24
Ein JAVA-Applet läßt sich auf folgende Weise einbinden:
<APPLET Code=Name der Klassendatei.class Width=Breite Heigth=Höhe in Pixel >
<PARAM Name=AppletParameter Value=Wert>
</APPLET>
Übung html-grafik: Scannen Sie ihr Bild und fügen Sie es in ihr HTML-Dokument ein.
Fügen Sie ein Bild, ihre Email-Adresse und für sie interessante Hyperlinks ein.
Erstellen Sie ein Inhaltsverzeichnis Ihres Dokuments mit Ankern.
Fügen Sie ein JAVA-Applet aus der Bespielssammlung ein.
3.6 CGI-Skripte
Wir wollen mit dem WWW-Browser nicht nur Dokumente ansehen können, sondern auch Eingaben
durchführen können, die dann von einem Server bearbeitet werden. Dieser Server kann eine Datenbank
betreiben und wir geben eine Datenbankabfrage ein, oder der Server führt sonstige Berechnungen durch und
sendet uns die Ausgabe.
3.6.1 Technik ohne JAVA:
Man definiert in HTML sogenannte Formulare. Wenn der Anwender die Submit-Schaltfläche anklickt,
werden der Text aus den Textfeldern und die Einstellungen der Schaltflächen zum Server zurückgesendet.
Auf dem Server wird das Programm (CGI-Skript) gestartet, welches bei Action im FORM-Tag angegeben ist.
Der http-Dämon auf dem Server schließt das CGI-Skript an und gibt ihm die entsprechenden Daten. Das
CGI-Skript verarbeitet die Formulardaten und sendet eine Antwortseite an den Browser zurück. Deren 1.Zeile
muß sein: „Content-type: <Mime-type>“ Üblicherweise wird das CGI-Skript in Perl (Erweiterung von UNIXShell-Script) geschrieben, C oder JAVA ist jedoch genauso möglich.
Antwort=
seite
CGISkript
Formular=
daten
Web-Browser
des Client
httpServer
Formular
Die Formulardaten könne mit den Methoden GET oder POST gesendet werden. Bei der GET-Methode
werden die Eingabedaten alsTeil des URL übergeben, bei der POST-Methode in der Standardeingabe. Der
Server sendet kein EOF, daher muss der Programmierer das Ende an Hand der ENVIRONMENT-Variable
„CONTENT_LENGTH“ ermitteln.
GET-Methode:Der httpd bekommt vom Browser folgende Anforderung: GET scriptname?parameters
Dieser Zeichenkette muss eine Leerzeile folgen.
Bsp.: GET /cgi-bin/priceinfo?Toaster+Herd\n\n
Das Skript Priceinfo würde diese Information, gefolgt von dem ? als Befehlszeilenparameter empfangen
(argv[0] für Toaster und argv[1] für Herd). Sie können also mehr als eine Anweisung in die Befehlszeile
eingeben, getrennt durch „+“ .
URL-Kodierung: Alle nicht alphanumerischen Zeichen, ausgenommen „+“ und „&“ werden durch ein „%“Zeichen gefolgt von einer zweistelligen Hexadezimalzahl kodiert. Dies verhindert, dass alle
Zwischenprogramme durch Eingabe von Zwischenräumen und Sonderzeichen durcheinandergebracht
werden. Bsp.: „Mastering C++“ wird zu „Mastering+C%2b%2b“ weil die Hexadezimalzahl „2b“ der
ASCII-Code von „+“ ist.
In der ENVIRONMENT-Variable „QUERY_STRING“ steht der gesamte Eingabestring zur Verfügung. (CFunktion getenv)
Formulare
Formular
Kontrollkästchen
<FORM Action=“URL“> <FORM Mehtod=“GET|POST“> </FORM>
<INPUT Type=“CHECKBOX“>
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 25
Textfeld
<INPUT Type=“TEXT“>
Passwort
<INPUT Type=“PASSWORD“>
Gruppe von Optionsfeldern <INPUT Type=“RADIO“>
Sende-Schaltfläche
<INPUT Type=“SUBMIT“>
Listenelement
<OPTION>
Auswahlliste
<SELECT></SELECT>
Mehrzeiliges Textfeld
<TEXTAREA></TEXTAREA>
CGI-Programme in C
Perl ist zwar die 1. Wahl für CGI-Programme, vieles spricht aber für C. Vorteil 1: sie beherrschen C, aber
nicht Perl. Vorteil 2: C ist schneller. Vorteil 3: C als binary ist besser zu schützen.
Die Übergabe von Parametern an CGI-Programme erfolgt entweder über die GET- oder POST-Methode. Die
Länge der Parameter ist nicht beschränkt. Da die Übernahme der Parameter vom Browser in C kompliziert
ist, gibt es diverse Routinensammlungen, die das Leben erleichtern.
NCSA-Daemon: http://hoohoo.ncsa.uiuc.edu/docs/setup/Compilation.html
cgic:
http://www.boutell.com/cgic/
gd:
http://www.boutell.com/gd/ Zeichenfunktion zur Erstellung von Grafiken
Übung-html-cgi: Erstellen Sie ein Formular in Ihrem Dokument und ein CGI-Skript in C mit der
GET-Methode.
z.B.: Suchmaschine (Suchbegriff, gesucht wird in Dateien am Server)
Hotel-, Flugzeugreservierung
Bestellung von z.B. CDs (incl. Verwaltung des Bestandes)
Fernwartung des WWW-Servers (ps, df-Kommandoausgabe über CGI schicken)
3.6.1.1 Technik mit JAVA:
Auf dem Client läuft das JAVA-Applet und kann bereits sehr viel berechnen, formatieren und darstellen. Bei
Bedarf kann über CGI, Sockets oder Mailto Verbindung mit dem JAVA-Programm auf dem Server
aufgenommen werden um Daten zu sammeln oder abzulegen.
CORNELL/HORSTMANN (S. 623-633) haben Perl, C und JAVA verglichen und kommen zu folgendem
Ergebnis:
JAVA schlägt C bei Netzwerkprogrammierung, Zeichenketten und Absturzsicherheit.
JAVA schlägt Perl, da es einfacher zu lesen und zu warten ist.
Ein Perl-Bsp.: $url =<<Tilde>> s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C“, hex($1)) /eg;
($name, $aliases, $proto) = getprotobyname (‘tcp’);
socket (S, $AF_INET, $port, $thataddr);
Hinweis: JAVA-Skript hat mit JAVA nur den Namen gemeinsam. Auch Java-Skript läuft auf der Client-Seite.
JAVA-Skript hat den Vorteil, auch auf 16-Bit-Betriebssystemen wie WINDOWS 3.1 zu laufen.
Dieser Vorteil wird jedoch bald nicht mehr relevant sein. Progammiertechnisch ist JAVA
vorzuziehen.
Hinweis: CGI ist nicht sehr komfortabel um wird von einer neuen Technik abgelöst werden. Microsoft
versucht derzeit mit seinem Internet Information Server 3.0 verlorenes Terrain wiederzugewinnen
und stellt mit ASP (Advanced Server Pages) eine CGI-Alternative vor, die konträr zur Linie aller
anderen Firmen geht. Diese wollen IIOP (Internet Inter Object Request Broker) als den weltweiten
Standard implementieren.
3.7 WWW-Server Apache konfigurieren
Übung-apache: Durchsuchen Sie den experimentellen WWW-Server auf der l1.
⇒ Verzeichnisse conf, cgi-bin, data, ftp in /local/www
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 26
⇒ /etc/passwd in bezug auf ftp-user (chroot bei /home/ftp/./home/hlab bewirkt, das der
Benutzer nur ftp durchführen kann und sein HOME-Verzeichnis als Wurzel hat)
⇒ Übertragen Sie eine HTML-Seite in das Übungsverzeichnis und betrachten Sie diese in
Netscape über den Internet-Namen htttp://l1.htlwrn.ac.at/.....
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 27
4 JAVA
4.1 java.applet.Applet
Die grundlegenden Methoden zur Steuerung eines Applets sind:
init() Diese Methode ruft der Browser sofort nach dem Konstruktor des Applets auf.
Sie dient der Initialisierung der verwendeten Daten.
start() Nach der Initialisierung des Applets ruft der Browser diese Methode auf.
Diesen Aufruf wiederholt er nach jedem erneuten Laden der Applet-Seite ohne dann jedoch
zuvor init() auszuführen.
stop() Beim Verlassen der Seite und vor dem Beenden des Browsers arbeitet er die Methode
destroy() Methode soll das Applet vollständig löschen.
Mit der Methode getAppletContext() kann man unerwünschte Wirkungen hervorrufen.
// Datei jf/kapitel4/abschnitt4/LookAtMeApplet.java
public class LookAtMeApplet extends Applet {
public void start() {
In der Startmethode versucht das Applet sofort, eine andere HTML-Seite zu laden. Es nutzt
dazu die Methode showDocument() der Klasse AppletContext.
try {
getAppletContext().showDocument(
new URL( getDocumentBase(), "ThisIsWhatYouGet.htm" ));
}
catch( java.net.MalformedURLException e ) {
System.out.println( e.toString() );
}
}
Bindet man das Applet in eine Seite ein, so wird tatsächlich ThisIsWhatYouGet.htm geladen.
Hier ein weiteres applet mit einer Zeichenfläche (canvas)
import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.lang.Boolean;
import java.net.*;
public class AppTest extends java.applet.Applet
{
String
cMsg;
public void init()
{
String
cImage;
String
cWidth;
String
cHeight;
String
cDisplayGif;
int
iWidth;
int
iHeight;
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 28
stop() ab.
Boolean bDisplayGif;
//
// Parameter auslesen
//
cMsg = getParameter("message");
cWidth = getParameter("width");
cHeight = getParameter("height");
iWidth = Integer.parseInt(cWidth);
iHeight = Integer.parseInt(cHeight);
//
// Applet auf gewuenschte Groesse
//
resize(iWidth, iHeight);
}
public void start()
{
this.Info ();
}
public void stop()
{
}
public void destroy()
{
}
public void Info ()
{
System.out.println( getAppletInfo() );
System.out.println( getCodeBase() );
System.out.println( getDocumentBase() );
}
public void paint(Graphics g)
// Grafikobjekt für Zeichenfläche
{
FontMetrics fm;
int
iWidth;
int
iHeight;
Dimension
dim;
dim = size();
fm
= g.getFontMetrics();
iHeight = fm.getHeight();
iWidth = fm.stringWidth(cMsg);
g.drawString( cMsg, (dim.width - iWidth)/2, (dim.height - iHeight)/2 );
}
}
Aufruf des applets über HTML
<CENTER><STRONG><H1> Applet </H1></STRONG></CENTER>
<HR>
<APPLET Code="AppTest.class"Width=400 Height=200>
<param NAME="height" VALUE=200>
<param NAME="width" VALUE=400>
<param NAME="message" VALUE="AppletTest">
<param NAME="display" VALUE=true>
</APPLET>
4.2 java.net.Socket
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 29
In der Programmierung unter Unix sind Sockets ein übliches Mittel zur Herstellung von
Kommunikationsverbindungen zwischen Prozessen auf möglicherweise verschiedenen Rechnern.
Sockets abstrahieren dabei von dem konkreten Übertragungsprotokoll (TCP/IP, UDP/IP), der Programmierer
muss sich lediglich an einen bestimmten Ablauf beim Verbindungsauf- und -abbau halten.
Die wichtigsten Klassen sind InetAddress (Internet-Adresse), ServerSocket (Socket für den Server in einer
Client-Server-Verbindung), Socket (Socket für den Client) und URL (Repräsentation eines URL-Objekts).
In einer TCP-Verbindung übernimmt ein Prozess die Rolle des Servers und ein anderer die Rolle des Clients.
Der Server öffnet einen Socket (open), bindet eine lokale Adresse (bind), spezifiziert die Anzahl der
gleichzeitig zu bearbeitenden Clients (listen) und wartet dann auf Clients (select und accept). Ein Client öffnet
ebenfalls einen Socket (open) und verbindet diesen dann mit der Adresse des Servers (connect). Im
Erfolgsfall ist nach diesem Procedere zwischen Server und Client eine Verbindung hergestellt, über die sie
Nachrichten austauschen können.
public final class ServerSocket extends Object
Konstruktoren
public ServerSocket( int port ) throws IOException
// Lokaler Port, unter dem der Server zu erreichen ist.
public ServerSocket( int port, int count ) throws IOException
// Anzahl akzeptierter Clients.
Auswahl der Methoden
public InetAddress getInetAddress()
// eigene Internet-Adresse
public int getLocalPort()
// eigener Port
public Socket accept() throws IOException
// Akzeptieren von Clients
public void close() throws IOException
// Schliessen der Verbindung
Ein Objekt der Klasse ServerSocket wird in einer Endlosschleife mit accept() auf Clients warten. Meldet sich
ein Client an, so kann der Server den von accept() zurückgegebenen Socket zum Nachrichtenaustausch mit
dem Client verwenden und dessen Anforderung bearbeiten. Für die Bearbeitung startet der Server im
allgemeinen einen eigenen Thread, damit er gleichzeitig auf weitere Clients warten kann.
Die Klasse Socket definiert die eigentliche Übertragungsfunktionalität, indem sie Ein- und Ausgabeströme
nach aussen reicht.
public final class Socket extends Object
Auswahl der Konstruktoren
public Socket( String host, int port )
throws UnknownHostException, IOException
// Verbindungsaufbau zu einem Server auf dem Rechner host am Port port
public Socket( InetAddress address, int port ) throws IOException
// Verbindungsaufbau über die Internet-Adresse
Auswahl der Methoden
public InetAddress getInetAddress()
// Internet-Adresse des Servers
public int getPort()
// Port des Servers
public int getLocalPort()
// eigener Port
public InputStream getInputStream() throws IOException
// Eingabestrom für die Datenübertragung
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 30
public OutputStream getOutputStream() throws IOException
// Ausgabestrom für die Datenübertragung
public synchronized void close() throws IOException
// Verbindungsabbau
In dem kleinen Beispiel sendet der Server jede vom Client erhaltene Zeile umgehend gespiegelt zurück. Er
nutzt dazu die Klasse jf.kapitel3.abschnitt4.StringMirror.
public class EchoServer {
public static void main ( String[] args ) {
new EchoServer().start();
}
public void start() {
ServerSocket serverSocket = null;
Socket clientSocket = null;
try {
serverSocket = new ServerSocket( 5574 );
while (( clientSocket = serverSocket.accept() ) != null )
( new EchoService( clientSocket )).start();
}
Ein Objekt der Klasse EchoService liest Bytes vom Client, wandelt sie in eine Zeichenkette, vertauscht die
Reihenfolge der Buchstaben und sendet das Ergebnis als Bytes zurück.
class EchoService extends Thread {
private byte[] buffer = new byte[ 1024 ];
private int readLength = 0;
private Socket socket = null;
private String line = null;
public EchoService( Socket socket ) { this.socket = socket; }
public void run() {
try {
OutputStream out = socket.getOutputStream();
InputStream in = socket.getInputStream();
while (( readLength = in.read( buffer )) > 0 ) {
line = new String( buffer, 0, readLength );
line = StringMirror.doMirror( line );
out.write( line.getBytes(), 0, line.length() );
}
}
Der gerade akzeptierte Client wird in einem parallelen Thread bedient. Der Server kann durch die
Verwendung von Threads also mehrere Clients gleichzeitig bearbeiten.
An dieser Stelle sei noch einmal darauf verwiesen, dass Applets in NetScape nur Socket-Verbindungen zu
dem Rechner aufbauen dürfen, von dem die Seite geladen wurde.
Der folgende Client funktioniert also nur, wenn der Echo-Server auf demselben Rechner gestartet wird, von
dem die HTML-Seite stammt.
Unter linux sind sockets im Normalfall nicht offen. Die Beispiele funktionieren nur, wenn man sie als
Superuser startet.
// Datei jf/kapitel5/abschnitt4/EchoClientApplet.java
public class EchoClientApplet extends Applet
implements ActionListener {
private Socket socket = null;
private TextField iTF = null, oTF = null;
private Button button = null;
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 31
private InputStream in = null;
private OutputStream out = null;
private String host = null;
private byte[] buffer = new byte[ 1024 ];
public void init() {
Panel bPanel = new Panel();
Panel tPanel = new Panel();
bPanel.setLayout( new GridLayout( 2, 1 ));
bPanel.add( ( button = new Button( "Sende" )));
button.addActionListener( this );
bPanel.add( ( new Label( "Empfangen:" )));
tPanel.setLayout( new GridLayout( 2, 1 ));
tPanel.add( ( iTF = new TextField( 30 )));
iTF.addActionListener( this );
tPanel.add( ( oTF = new TextField( 30 )));
setLayout( new FlowLayout() );
add( bPanel ); add( tPanel );
Das Applet kann nur Verbindungen zum Rechner der eigenen DocumentBase aufbauen, deshalb
wird host auf diese Weise initialisiert.
host = getDocumentBase().getHost();
if ( host.equals( "" )) host = "localhost";
}
public void start() {
if ( socket == null )
try {
socket = new Socket( host, 5574 );
in = socket.getInputStream();
out = socket.getOutputStream();
}
catch ( UnknownHostException e ) {
oTF.setText( "unbekannter Rechner" );
}
catch ( IOException e ) {
oTF.setText( "IO-Fehler " +e );
}
}
public void stop() {
if ( socket != null )
try { socket.close();}
catch ( IOException e ) {}
socket = null; in = null; out = null;
}
public void actionPerformed( ActionEvent actionEvent ) {
if ( socket != null ) {
try {
String line = iTF.getText();
int readLength = 0;
out.write( line.getBytes(), 0, line.length() );
readLength = in.read( buffer );
oTF.setText( new String( buffer, 0, readLength ));
4.3 java.net.URL
Eine komfortable Klasse zum Datenaustausch im World Wide Web ist die Klasse URL. Mit ihr können
entfernte World Wide Web-Dateien oder Server (z.B. ftp) adressiert, gelesen und ausgewertet werden.
public final class URL extends Object
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 32
Konstruktoren
public URL( String prot, String host, int port, String file )
throws MalformedURLException
// URL-Adresse in Komponenten
public URL( String protocol, String host, String file )
throws MalformedURLException
// Standard-Port
public URL( String spec ) throws MalformedURLException
// URL-Adresse als String
public URL( URL context, String spec ) throws MalformedURLException
// Hierarchie
Auswahl der Methoden
public int getPort()
// Port der URL-Adresse
public String getProtocol()
// Protokoll der URL-Adresse
public String getHost()
// Host der URL-Adresse
public String getFile()
// Dateiname
public URLConnection openConnection() throws IOException
// Verbindungsaufbau
public final InputStream openStream() throws IOException
// Eingabestrom
public final Object getContent() throws IOException
// Inhalt
Als Abschlußbeispiel soll ein Programm dienen, mit dem man von der Kommandozeile aus WWW-Seiten
abfragen kann. Diese werden im Quelltextformat angezeigt.
// Datei jf/kapitel5/abschnitt4/ShowUrl.java
URL url = new URL( args[ 0 ] );
BufferedReader in = new BufferedReader(
new InputStreamReader(
url.openStream() ));
String line = null;
while (( line = in.readLine()) != null )
System.out.println( line );
Übung java-URL:
⇒ Entwerfen Sie ein Applet, das die Zugriffe auf die eigene WWW-Seite zählt.
⇒ Es soll sich dazu einer Zählerdatei auf dem WWW-Server bedienen. Diese Zählerdatei soll durch ein CGIProgramm in C aktualisiert werden.
⇒ Das Applet soll einen Button besitzen, mit dem der Zählerstand erhöht wird. Dazu muss das CGIProgramm aus dem JAVA-Applet heraus aktiviert werden. /Java bis in Detail S.594-612/
Dazu muss ein Socket auf den WWW-Server und dem Port 80 geöffnet werden. Über diesen Socket
muss zuerst das Script aufgerufen werden und anschließend die Daten empfangen werden.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 33
⇒ In einer Textarea sollen alle Zeilen aus der Log-Datei des Servers, die diese Seite betreffen, aufgelistet
werden.
Internet-Programmierung (TCP/IP, JAVA, HTML)
/ HTL Wr.Neustadt Abt. EDVO / Schulintern
Seite 34
Herunterladen