Kaffee & Kuchen
Kaffee & Kuchen
die führende deutsche
Java-Seite
von Christoph Bergmann
und Hannes Gamperl



Java-Chat selbst gemacht
von Christoph Bergmann

Suche

Erweiterte Suche

Kommunikation
Chat
Forum

Java-Neuigkeiten

Einführung
Was ist Java?
Wie fange ich an?
Bücher über Java

Workshops
Animacons für jeden
Chat selbst gemacht
Sicherheit, URLs & Streams
Sockets, Client/Server & das Chat-System

Der Chat-Server
Die Connection-Klasse
Das Chat-Applet

Kompilieren & Starten
Der komplette Quellcode
JDBC

Wissen
Entwicklungssysteme

Ressourcen
Applet-Bibliothek
Deutsche Java-Links
Internat. Java-Links
Glossar
News-Archiv

K&K Intern
Pressespiegel
Auszeichnungen
Werbung auf K&K

Weitere Angebote
Milch&Zucker: DHTML
K.&Kekse: Javascript
mac.seite: Apple

Fragen, Lob & Kritik
bitte in das Forum

EMail an java@acc.de
nur, wenn es nichts Allgemeines ist.

Kaffee & Kuchen
ist ein Service von
ACCESS Internet

    Eine der herausragenden Eigenschaften des Internets gegenüber anderen Medien ist die Interaktion. Die schnellste Art mit anderen zu kommunizieren ist dabei der Chat, bei dem sich zwei oder mehr Nutzer direkt miteinander unterhalten können. Einen solchen Chat wollen wir im folgenden programmieren, wobei wir grundlegende Java-Kenntnisse voraussetzen.

    Als Erstes eine kurze Einführung in die nötigen Grundlagen:


    Sicherheitseinschränkungen

    Applets, also Java-Programme die in HTML-Seiten eingebunden werden, unterliegen aus Sicherheitsgründen bestimmten Einschränkungen: Zum Beispiel ist Applets nur der Zugriff auf den Server erlaubt, von dem sie geladen wurden. Wurde ein Applet also z.B. vom Server "java.seite.net" geladen, kann das Applet auch nur zu diesem Server eine Verbindung aufnehmen.
    Versucht ein Applet trotzdem einen Zugriff auf einen anderen Server so erscheint in der Statuszeile des Browsers die Fehlermeldung "Applet canít start: Security violation: security.socket.connect" und eine entsprechende Ausnahmebehandlung wird ausgelöst.
    Derselbe Fehler tritt auf, wenn auf dem angeforderten Port keine Verbindung hergestellt werden kann, also z.B. der Chat-Server nicht gestartet wurde.


    URLs

    Um eine Verbindung zu einem anderen Rechner aufzubauen, benötigen wir als erstes dessen Internet-Adresse, die sog. "Universal Ressource Location" (URL), die ja inzwischen jeder dank des WWW kennen dürfte.
    Diese wird, wie in Java üblich, als eigene Klasse definiert. Ein Aufruf sieht z.B. so aus:

    try
    {
    	meineurl= new URL("http://java.seite.net/index.html");
    } catch (MalformedURLExceoption e)
    {
    	getAppletContext().showStatus("Unzulässige URL:" + meineurl);
    }
    
    Damit mögliche Fehler abgefangen werden ummanteln wir die Erzeugung mit einem try { } catch { }.
    Damit haben wir eine Verbindung zu dem angegebenen Server und in diesem Fall zu einer Datei geöffnet. Jetzt müssen wir nur noch die Daten laden: Dafür bietet Java die manchem schon aus C++ bekannte Möglichkeit der streams.


    Streams

    Ein Stream ist, einfach übersetzt, ein Strom von Daten, oder, anders ausgedrückt, eine Verbindung zwischen zwei Punkten, wobei die eine Seite Information liefert und die andere Seite diese Informationen empfängt. Das Schöne an einem Stream ist, dass es für beide Seiten vollkommen unwichtig ist, wer oder was an der anderen Seite hängt: Der Sender der Informationen kann z.B. eine Datei sein, Eingaben über eine Tastatur oder eine Datenverbindung zu einem anderen Rechner, der Empfänger ein Programm, eine Datei usw.
    Sogenannte Filter haben sowohl als Eingabe als auch als Ausgabe einen Stream: Sie lesen Daten aus dem Eingabestream, verarbeiten sie und geben sie dann auf dem Ausgabestream wieder aus. Damit lassen sich Streams kombinieren und beliebig hintereinander hängen: Eine sehr mächtige Eigenschaft der Streams.
    Um Daten aus der oben angegebenen URL lesen zu können, müssen wir also einen Stream dahin öffnen. Die URL-Klasse definiert eine Methode openStream() die genau dies erledigt. Als Rückgabewert erhält man eine Instanz der Klasse InputStream. Der folgende Codeausschnitt liest Zeile für Zeile aus der obigen URL, einer HTML-Seite, und gibt diese aus:

    try
    {
    	InputStream is=meineurl.openStream();
    	DataInputStream dis=new DataInputStream(is);
    } catch (IOException e) {}
    
    while(true)
    {
    	try
    	{
    		line=dis.readLine();
    		if(line==null) break;
    		System.out.println(line);
    	} catch (IOException e) {}
    }
    



Sockets, Client/Server & das Chat-System
Nach oben

© 1998 Christoph Bergmann / ACCESS Internet. Alle Rechte vorbehalten.