INTERNET - Programmierung

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)
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


Verfahren: Die elektrischen Signale werden über einen elektrooptischen Wandler (Elektroluminiszenzdioden = LED oder Laserdioden) in Lichtsignale umgesetzt und über ein 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: - 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)
Nachteile: - 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 muss 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 muss.

    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 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 dass 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




    ATM - Asynchroner 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.

Ãœ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 muss 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

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, dass 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.


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.





7.)Verarbeitungsschicht

6.) Darstellungsschicht

5.) Kommunikationsschicht

4.) Transportschicht

3.) Vermittlungsschicht

2.) Sicherungsschicht

1.) Bitübertragungsschicht










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

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" ASCII - Terminals (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, muss ein Internet - Anbieter (Provider) den Namen seines Rechners oder Netzwerks (Domain) beim Name Information Center (Internic) anmelden.
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 Internet - Leitung 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.

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



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 Stern - Topologie notwendig. Theoretisch sind beliebig viele Computer anschließbar.
Nachteile: bei Ausfall einer Station steht das ganze Netz (Abhilfe: Überbrückungsschaltungen)

2.)Stern - Topologie (Großrechnertechnologie)



Alle Computer sind an einen zentralen Vermittlungsrechner (Konzentrator) angeschlossen, der die Steuerung und Überwachung des gesamten Kommunikationssystems 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.
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 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.

Vorteile: 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.
Nachteile: 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)

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: 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.
Nachteile: 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, dass 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, dass 2 Computer gleichzeitig feststellen, dass 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.

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, dass 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 Domain - Adresse lässt 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.
r.simon@htlwrn.ac.at 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 loopback #Zum Test, der Rechner wird nicht verlassen
193.170.149.62 novell1 n1 #Novell - Server Karte für Saal Zuse
193.170.149.158 novell4 n4 #Novell - Server Karte für Saal Zemanek
193.170.149.33 U101 #1.PC im Saal Zuse
193.170.149.128 U401 #1.PC im Saal Zemanek
193.170.149.151 SUN #Domain Name Server, Mail Server
193.170.149.161 Ts1 #Terminal - Server
193.170.149.154 www #WWW - Server der HTL
    l1 #Linux - Server
193.170.149.156 Firei #1.Netzwerkkarte Firewall im Segment ZEMANEK
193.170.149.190 Fireo #2.Netzwerkkarte Firewall im Segment NEUMANN
193.170.149.189 CISCO #Router ins Internet

2.2 Zeitmultiplexverfahren im Internet und Routing

File - Transfer Bildaufbau
Uni - Wien Yahoo
Univie.ac.at U102 U205
U102 Paket 1
U102 Paket 2
U205 Paket 1
U102 Paket 3
U304 Paket 1 t


Cisco - Router ISDN - Leitung Cisco - Router
Wien Wr. Neustadt

Bildaufbau
Cisco NEW - YORK IBM.com
U304


IBM.com



Yahoo

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.


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 5 + 8 + 8 Bit Netzwerkadresse 8 - Bit lokale Rechneradressen


Class C - 110 5 + 8 + 8 + (8 - n) Bit Netzwerkadresse n - Bit lokale Rechneradressen
Subnetz

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

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 muss 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 hosts - Datei 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, dass 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 muss diese Anwendung unseren Domain Name Server "sun.htlwrn.ac.at" fragen. Diese Anwendung muss 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.


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 IP - Paketen, 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.

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")
#
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 Genmask Flags Metric Window Use Iface
ipnet1 * 255.255.255.224 U 0 0 419235 eth0
loopback * 255.0.0.0 U 0 0 1675 lo
default Firei 0.0.0.0 UG 1 0 46553 eth0

2.6.4 l1:Ausgabe von /usr/sbin/traceroute


1 Firei (193.170.149.156) 1.995 ms 1.724 ms 1.704 ms
2 htlwrneu - server (193.170.149.189) 4.516 ms 4.534 ms 4.34 ms
3 193.170.149.5 (193.170.149.5) 36.378 ms 28.177 ms 28.198 ms
4 gw2.bmuvie.gv.at (193.170.115.9) 30.645 ms 30.418 ms 30.428 ms
5 Vienna - RBS.ACO.net (192.153.182.57) 31.213 ms 40.41 ms 31.041 ms
6 iris.cc.univie.ac.at (193.171.14.11) 31.518 ms 34.108 ms 31.682 ms
7 hera.cc.univie.ac.at (131.130.208.2) 31.505 ms 31.454 ms 31.381 ms
8 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 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

2.6.6 l1:Ausgabe von /usr/sbin/arp - a und ping


Address HW type HW address Flags Mask
193.170.149.150 10Mbps Ethernet 00:00:0C:3D:DA:7A C *
193.170.149.151 10Mbps Ethernet 08:00:20:74:FA:7E C *
193.170.149.158 10Mbps Ethernet 00:60:8C:96:EC:10 C *


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
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 ; CISCO Router
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

2.6.11 sun:Ausgabe von usr/bin/netstat - r


Routing Table:
Destination Gateway Flags Ref Use Interface
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
localhost localhost UH 0 1727 lo0
ipnet4 SUN U 3 305 le0
193.170.149.192 ppp - host U 2 0 ipd1
BASE - ADDRESS.MCAST.NET SUN U 3 0 le0
default 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
PATH SCRIPT n:\lwp\SCRIPT
PATH TCP_CFG n:\lwp\TCP
ip_netmask 255.255.255.224
ip_address 193.170.149.142
ip_router 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




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:// www.htlwrn.ac.at :80 /r.simon/index.html

Protokoll 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 Beschreibung .
application/msword Microsoft Word Dokument
image/gif GIF - Bild
text/html HTML - Text
text/plain ASCII - Text
application/zip 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.


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 und als Beginn und Ende.
Machen Sie einen mit , Kommentar mit <! - - Kommentar - - >,<br> einen <BODY> mit mehreren Ãœberschriften <H1> bis <H6>,<br> 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.<br> Im BODY kann mit BGCOLOR oder BACKGROUND="Bilddatei" der Hintergrund verändert werden.<br> <h2>3.4 HTML:Listen, Zeichenformatierung</h2> <br> Ãœbung - html - listen: Erweitern Sie ihr HTML - Dokument mit der Darstellung ihrer Fähigkeiten und Hobbys.<br> Verwenden Sie verschiedene Listenformate um diese darzustellen.<br> Verzeichnisliste <DIR><LI></DIR><br> Geordnete Liste <OL><LI></OL><br> Ungeordnete Liste <UL><LI></UL><br> Menü - Liste <MENU><LI></MENU><br> Definitionsliste <DL><DT><DD></DL><br> <br> Besonders fleissige können noch mit den verschiedenen Textformate experimentieren:<br> Fettschrift <B></B><br> Hervorgehoben <EM></EM><br> Stark hervorgehoben <STRONG></STRONG><br> Kursivschrift <I></I><br> Text bleibt unverändert <PRE></PRE><br> Nicht proportionaler Text <TT></TT><br> Text ausrichten Align="Left|Middle|Center" (Bei mehreren Tags optional verwendbar)<br> Adresse des Autors <ADDRESS> </ADDRESS><br> Sonderzeichen <>&"ßÜ <,> & " ß Ãœ<br> Textgröße und - farbe <FONT SIZE=[1 - 7]> </FONT> <FONT COLOR=#RGB> </FONT><br> <br> Hinweis: HTML unterstützt weiters noch wunderschöne Tabellen und Frames. Frames teilen das Fenster in mehrere Unterbereiche.<br> <br> <h2>3.5 HTML: Grafiken, Hyperlinks, Java - Applets referenzieren</h2> <br> Grafikdateien vom Typ GIF, JPEG und XBM können mit<br> <IMG Src="URL" Alt="Text, falls Bild nicht angezeigt werden kann"> eingefügt werden.<br> <A HREF="URL"><IMG Src=""></A> fügt die Grafik ein, auf die der Hyperlink verweist.<br> <br> Video und Sound - Dateien werden in Standard - HTML noch nicht unterstützt.<br> <br> Hyperlinks (Anker) werden mit <A Href="URL"> Mit Hyperlink verknüpfter Text </A> definiert.<br> Der URL kann relativ zum aktuellen Serverpfad oder absolut angegeben werden.<br> <br> <br> Bsp1: <A HREF="http://www.htlstpoe.ac.at"> HTL St. Pölten </A><br> Bsp2: <IMG align=middle SRC="htlhand.gif"><A HREF="mailto:user@htlwrn.ac.at">Write me! </A><br> <br> Sie können Verknüpfungen zwischen mehreren Dokumenten wie z.B. ein Inhaltsverzeichnis mit<br> benannten Ankern aufbauen. <A NAME="Ankername"> Text </A>. Der URL ist dann #Ankername.<br> <br> Ein JAVA - Applet lässt sich auf folgende Weise einbinden:<br> <APPLET Code=Name der Klassendatei.class Width=Breite Heigth=Höhe in Pixel><br> <PARAM Name=AppletParameter Value=Wert><br> </APPLET><br> <br> Ãœbung html - grafik: Scannen Sie ihr Bild und fügen Sie es in ihr HTML - Dokument ein.<br> Fügen Sie ein Bild, ihre Email - Adresse und für sie interessante Hyperlinks ein.<br> Erstellen Sie ein Inhaltsverzeichnis Ihres Dokuments mit Ankern.<br> Fügen Sie ein JAVA - Applet aus der Bespielssammlung ein.<br> <br> <br> <h2>3.6 CGI - Skripte</h2> <br> 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.<br> <br> <h3>3.6.1 Technik ohne JAVA</h3> 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 muss sein: "Content - type: <Mime - type>" Ãœblicherweise wird das CGI - Skript in Perl (Erweiterung von UNIX - Shell - Script) geschrieben, C oder JAVA ist jedoch genauso möglich.<br> <br> <br> Antwort= Formular=<br> seite daten<br> CGI - Web - Browser Formular<br> Skript http - des Client<br> Server<br> <br> <br> 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.<br> <br> GET - Methode:Der httpd bekommt vom Browser folgende Anforderung: GET scriptname?parameters<br> Dieser Zeichenkette muss eine Leerzeile folgen.<br> Bsp.: GET /cgi - bin/priceinfo?Toaster+Herd\n\n<br> 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 "+" .<br> 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.<br> In der ENVIRONMENT - Variable "QUERY_STRING" steht der gesamte Eingabestring zur Verfügung. (C - Funktion getenv)<br> <br> Formulare<br> <br> Formular <FORM Action="URL"> <FORM Mehtod="GET|POST"> </FORM><br> Kontrollkästchen <INPUT Type="CHECKBOX"><br> Textfeld <INPUT Type="TEXT"><br> Passwort <INPUT Type="PASSWORD"><br> Gruppe von Optionsfeldern <INPUT Type="RADIO"><br> Sende - Schaltfläche <INPUT Type="SUBMIT"><br> Listenelement <OPTION><br> Auswahlliste <SELECT></SELECT><br> Mehrzeiliges Textfeld <TEXTAREA></TEXTAREA><br> <br> CGI - Programme in C<br> <br> 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.<br> <br> 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.<br> NCSA - Daemon: http://hoohoo.ncsa.uiuc.edu/docs/setup/Compilation.html<br> cgic: http://www.boutell.com/cgic/<br> gd: http://www.boutell.com/gd/ Zeichenfunktion zur Erstellung von Grafiken<br> <br> Ãœbung - html - cgi: Erstellen Sie ein Formular in Ihrem Dokument und ein CGI - Skript in C mit der<br> GET - Methode.<br> z.B.: Suchmaschine (Suchbegriff, gesucht wird in Dateien am Server)<br> Hotel - , Flugzeugreservierung<br> Bestellung von z.B. CDs (incl. Verwaltung des Bestandes)<br> Fernwartung des WWW - Servers (ps, df - Kommandoausgabe über CGI schicken)<br> <br> <br> <br> <h4>3.6.1.1 Technik mit JAVA</h4> 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.<br> <br> CORNELL/HORSTMANN (S. 623 - 633) haben Perl, C und JAVA verglichen und kommen zu folgendem Ergebnis:<br> JAVA schlägt C bei Netzwerkprogrammierung, Zeichenketten und Absturzsicherheit.<br> JAVA schlägt Perl, da es einfacher zu lesen und zu warten ist.<br> <br> Ein Perl - Bsp.: $url =<<Tilde>> s/%([a - fA - F0 - 9][a - fA - F0 - 9])/pack("C", hex($1)) /eg;<br> ($name, $aliases, $proto) = getprotobyname (‘tcp’);<br> socket (S, $AF_INET, $port, $thataddr);<br> <br> <br> 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.<br> <br> 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.<br> <br> <h2>3.7 WWW - Server Apache konfigurieren</h2> <br> Ãœbung - apache: Durchsuchen Sie den experimentellen WWW - Server auf der l1.<br> <ul> Verzeichnisse conf, cgi - bin, data, ftp in /local/www /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/.....</ul> <h1>4 JAVA</h1> <br> <h2>4.1 java.applet.Applet</h2> <br> Die grundlegenden Methoden zur Steuerung eines Applets sind:<br> <br> init() Diese Methode ruft der Browser sofort nach dem Konstruktor des Applets auf.<br> Sie dient der Initialisierung der verwendeten Daten.<br> <br> start() Nach der Initialisierung des Applets ruft der Browser diese Methode auf.<br> Diesen Aufruf wiederholt er nach jedem erneuten Laden der Applet - Seite ohne dann jedoch zuvor init() auszuführen.<br> <br> stop() Beim Verlassen der Seite und vor dem Beenden des Browsers arbeitet er die Methode stop() ab.<br> <br> destroy() Methode soll das Applet vollständig löschen.<br> <br> Mit der Methode getAppletContext() kann man unerwünschte Wirkungen hervorrufen.<br> <br> // Datei jf/kapitel4/abschnitt4/LookAtMeApplet.java<br> <br> public class LookAtMeApplet extends Applet {<br> public void start() {<br> In der Startmethode versucht das Applet sofort, eine andere HTML - Seite zu laden. Es nutzt<br> dazu die Methode showDocument() der Klasse AppletContext.<br> <br> try {<br> getAppletContext().showDocument(<br> new URL( getDocumentBase(), "ThisIsWhatYouGet.htm" ));<br> }<br> catch( java.net.MalformedURLException e ) {<br> System.out.println( e.toString() );<br> }<br> }<br> <br> Bindet man das Applet in eine Seite ein, so wird tatsächlich ThisIsWhatYouGet.htm geladen.<br> <br> <br> <br> Hier ein weiteres applet mit einer Zeichenfläche (canvas)<br> <br> import java.applet.*;<br> import java.awt.*;<br> import java.awt.image.*;<br> import java.lang.Boolean;<br> import java.net.*;<br> <br> public class AppTest extends java.applet.Applet<br> {<br> String cMsg;<br> public void init()<br> {<br> String cImage;<br> String cWidth;<br> String cHeight;<br> String cDisplayGif;<br> int iWidth;<br> int iHeight;<br> Boolean bDisplayGif;<br> //<br> // Parameter auslesen<br> //<br> cMsg = getParameter("message");<br> cWidth = getParameter("width");<br> cHeight = getParameter("height");<br> iWidth = Integer.parseInt(cWidth);<br> iHeight = Integer.parseInt(cHeight);<br> //<br> // Applet auf gewuenschte Groesse<br> //<br> resize(iWidth, iHeight);<br> }<br> public void start()<br> {<br> this.Info ();<br> }<br> public void stop()<br> {<br> }<br> public void destroy()<br> {<br> }<br> public void Info ()<br> {<br> System.out.println( getAppletInfo() );<br> <br> System.out.println( getCodeBase() );<br> <br> System.out.println( getDocumentBase() );<br> }<br> <br> public void paint(Graphics g) // Grafikobjekt für Zeichenfläche<br> {<br> FontMetrics fm;<br> int iWidth;<br> int iHeight;<br> Dimension dim;<br> dim = size();<br> fm = g.getFontMetrics();<br> iHeight = fm.getHeight();<br> iWidth = fm.stringWidth(cMsg);<br> g.drawString( cMsg, (dim.width - iWidth)/2, (dim.height - iHeight)/2 );<br> }<br> }<br> <br> Aufruf des applets über HTML<br> <br> <CENTER><STRONG><H1> Applet </H1></STRONG></CENTER><br> <HR><br> <APPLET Code="AppTest.class"Width=400 Height=200><br> <param NAME="height" VALUE=200><br> <param NAME="width" VALUE=400><br> <param NAME="message" VALUE="AppletTest"><br> <param NAME="display" VALUE=true><br> </APPLET><br> <h2>4.2 java.net.Socket</h2> <br> In der Programmierung unter Unix sind Sockets ein übliches Mittel zur Herstellung von Kommunikationsverbindungen zwischen Prozessen auf möglicherweise verschiedenen Rechnern.<br> 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.<br> 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).<br> <br> 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.<br> <br> public final class ServerSocket extends Object<br> <br> Konstruktoren<br> <br> public ServerSocket( int port ) throws IOException<br> // Lokaler Port, unter dem der Server zu erreichen ist.<br> public ServerSocket( int port, int count ) throws IOException<br> // Anzahl akzeptierter Clients.<br> <br> Auswahl der Methoden<br> <br> public InetAddress getInetAddress()<br> // eigene Internet - Adresse<br> public int getLocalPort()<br> // eigener Port<br> public Socket accept() throws IOException<br> // Akzeptieren von Clients<br> public void close() throws IOException<br> // Schliessen der Verbindung<br> <br> 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.<br> <br> Die Klasse Socket definiert die eigentliche Ãœbertragungsfunktionalität, indem sie Ein - und Ausgabeströme nach aussen reicht.<br> <br> public final class Socket extends Object<br> <br> Auswahl der Konstruktoren<br> <br> public Socket( String host, int port )<br> throws UnknownHostException, IOException<br> // Verbindungsaufbau zu einem Server auf dem Rechner host am Port port<br> public Socket( InetAddress address, int port ) throws IOException<br> // Verbindungsaufbau über die Internet - Adresse<br> <br> Auswahl der Methoden<br> <br> public InetAddress getInetAddress()<br> // Internet - Adresse des Servers<br> public int getPort()<br> // Port des Servers<br> public int getLocalPort()<br> // eigener Port<br> public InputStream getInputStream() throws IOException<br> // Eingabestrom für die Datenübertragung<br> public OutputStream getOutputStream() throws IOException<br> // Ausgabestrom für die Datenübertragung<br> public synchronized void close() throws IOException<br> // Verbindungsabbau<br> <br> <br> 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.<br> <br> public class EchoServer {<br> public static void main ( String[] args ) {<br> new EchoServer().start();<br> }<br> public void start() {<br> ServerSocket serverSocket = null;<br> Socket clientSocket = null;<br> try {<br> serverSocket = new ServerSocket( 5574 );<br> while (( clientSocket = serverSocket.accept() ) != null )<br> ( new EchoService( clientSocket )).start();<br> }<br> <br> 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.<br> <br> <br> class EchoService extends Thread {<br> private byte[] buffer = new byte[ 1024 ];<br> private int readLength = 0;<br> private Socket socket = null;<br> private String line = null;<br> public EchoService( Socket socket ) { this.socket = socket; }<br> public void run() {<br> try {<br> OutputStream out = socket.getOutputStream();<br> InputStream in = socket.getInputStream();<br> while (( readLength = in.read( buffer ))> 0 ) {<br> line = new String( buffer, 0, readLength );<br> line = StringMirror.doMirror( line );<br> out.write( line.getBytes(), 0, line.length() );<br> }<br> }<br> <br> Der gerade akzeptierte Client wird in einem parallelen Thread bedient. Der Server kann durch die<br> Verwendung von Threads also mehrere Clients gleichzeitig bearbeiten.<br> <br> 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.<br> Der folgende Client funktioniert also nur, wenn der Echo - Server auf demselben Rechner gestartet wird, von dem die HTML - Seite stammt.<br> <br> Unter linux sind sockets im Normalfall nicht offen. Die Beispiele funktionieren nur, wenn man sie als Superuser startet.<br> <br> <br> // Datei jf/kapitel5/abschnitt4/EchoClientApplet.java<br> <br> public class EchoClientApplet extends Applet<br> implements ActionListener {<br> private Socket socket = null;<br> private TextField iTF = null, oTF = null;<br> private Button button = null;<br> private InputStream in = null;<br> private OutputStream out = null;<br> private String host = null;<br> private byte[] buffer = new byte[ 1024 ];<br> public void init() {<br> Panel bPanel = new Panel();<br> Panel tPanel = new Panel();<br> bPanel.setLayout( new GridLayout( 2, 1 ));<br> bPanel.add( ( button = new Button( "Sende" )));<br> button.addActionListener( this );<br> bPanel.add( ( new Label( "Empfangen:" )));<br> tPanel.setLayout( new GridLayout( 2, 1 ));<br> tPanel.add( ( iTF = new TextField( 30 )));<br> iTF.addActionListener( this );<br> tPanel.add( ( oTF = new TextField( 30 )));<br> setLayout( new FlowLayout() );<br> add( bPanel ); add( tPanel );<br> <br> Das Applet kann nur Verbindungen zum Rechner der eigenen DocumentBase aufbauen, deshalb<br> wird host auf diese Weise initialisiert.<br> <br> host = getDocumentBase().getHost();<br> if ( host.equals( "" )) host = "localhost";<br> }<br> public void start() {<br> if ( socket == null )<br> try {<br> socket = new Socket( host, 5574 );<br> in = socket.getInputStream();<br> out = socket.getOutputStream();<br> }<br> catch ( UnknownHostException e ) {<br> oTF.setText( "unbekannter Rechner" );<br> }<br> catch ( IOException e ) {<br> oTF.setText( "IO - Fehler " +e );<br> }<br> }<br> public void stop() {<br> if ( socket != null )<br> try { socket.close();}<br> catch ( IOException e ) {}<br> socket = null; in = null; out = null;<br> }<br> <br> public void actionPerformed( ActionEvent actionEvent ) {<br> if ( socket != null ) {<br> try {<br> String line = iTF.getText();<br> int readLength = 0;<br> out.write( line.getBytes(), 0, line.length() );<br> readLength = in.read( buffer );<br> oTF.setText( new String( buffer, 0, readLength ));<br> <br> <h2>4.3 java.net.URL</h2> 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.<br> <br> public final class URL extends Object<br> <br> Konstruktoren<br> <br> <br> public URL( String prot, String host, int port, String file )<br> throws MalformedURLException<br> // URL - Adresse in Komponenten<br> public URL( String protocol, String host, String file )<br> throws MalformedURLException<br> // Standard - Port<br> public URL( String spec ) throws MalformedURLException<br> // URL - Adresse als String<br> public URL( URL context, String spec ) throws MalformedURLException<br> // Hierarchie<br> <br> Auswahl der Methoden<br> <br> public int getPort()<br> // Port der URL - Adresse<br> public String getProtocol()<br> // Protokoll der URL - Adresse<br> public String getHost()<br> // Host der URL - Adresse<br> public String getFile()<br> // Dateiname<br> public URLConnection openConnection() throws IOException<br> // Verbindungsaufbau<br> public final InputStream openStream() throws IOException<br> // Eingabestrom<br> public final Object getContent() throws IOException<br> // Inhalt<br> <br> Als Abschlußbeispiel soll ein Programm dienen, mit dem man von der Kommandozeile aus WWW - Seiten abfragen kann. Diese werden im Quelltextformat angezeigt.<br> // Datei jf/kapitel5/abschnitt4/ShowUrl.java<br> <br> URL url = new URL( args[ 0 ] );<br> BufferedReader in = new BufferedReader(<br> new InputStreamReader(<br> url.openStream() ));<br> String line = null;<br> while (( line = in.readLine()) != null )<br> System.out.println( line );<br> <br> <br> <br> <br> <br> <br> <br> <br> Ãœbung java - URL:<br> <br> <ul> Entwerfen Sie ein Applet, das die Zugriffe auf die eigene WWW - Seite zählt.<br> Es soll sich dazu einer Zählerdatei auf dem WWW - Server bedienen. Diese Zählerdatei soll durch ein CGI - Programm in C aktualisiert werden.<br> Das Applet soll einen Button besitzen, mit dem der Zählerstand erhöht wird. Dazu muss das CGI - Programm aus dem JAVA - Applet heraus aktiviert werden. /Java bis in Detail S.594 - 612/<br> 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.<br> In einer Textarea sollen alle Zeilen aus der Log - Datei des Servers, die diese Seite betreffen, aufgelistet werden.</ul> <br> <br> <br> </p> <p class="text_object_info"> 8865 Worte in "deutsch"  als "hilfreich"  bewertet </p> </div> <div id="partner_links_container"> <div class="raw_html_container"> </div> </div> </div> </div> </div> </div> <div id="page_footer"> <p id="footer_links"><a href="impressum.php">Impressum</a> • <a href="nutzung.php">Nutzungsbedingungen</a> • <a href="werbung.php">Werbung</a></p> <div id="footer_disclaimer"> <span>© 2007-2024 by MK-Multimedia, wir distanzieren uns hiermit ausdrücklich von allen Inhalten aller verlinkter Seiten.</span> </div> </div> </div> </body> </html>