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



Java-Chat selbst gemacht
Die Connection-Klasse

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

    Die Connection-Klasse wird vom Chat-Server erzeugt und behandelt die eigentlichen Verbindungen zu den Clients.
    import java.net.*;
    import java.io.*;
    
    class connection extends Thread
    {
    	...
    }
    
    Für jede eingegangene Verbindung wird ein eigenes connection-Objekt erzeugt, das diese übernimmt. Es soll als eigenständiger Thread laufen und wird deshalb von der Thread-Klasse abgeleitet.
    protected Socket client;
    protected DataInputStream in;
    protected PrintStream out;
    protected chatserver server;
    
    client übernimmt den Socket vom Chat-Server, mit dem dann die beiden Ein- und Ausgabestreams in und out verbunden werden. server speichert den Zugriff auf das Chat-Server-Objekt.
    public connection(chatserver server, Socket client)
    {
    	this.server=server;
    	this.client=client;
    
    	try
    	{
    		in = new DataInputStream(client.getInputStream());
    		out = new PrintStream(client.getOutputStream());
    	} catch (IOException e)
    	{
    		try { client.close(); } catch (IOException e2) {} ;
    		System.err.println("Fehler beim Erzeugen der Streams: " + e);
    		return;
    	}
    
    	this.start();
    }
    
    Der Konstruktor der connection-Klasse merkt sich erst einmal die übergebenen Argumente, einen Verweis auf das Chat-Server-Objekt und den Socket, in dem es sie in eigenen Variablen speichert. Dann versucht er einen Eingabestream und einen Ausgabestream zu bekommen. Dabei möglicherweise auftretende Fehler werden vom catch() abgefangen.
    public void run()
    {
    	String line;
    
    	try
    	{
    		while(true)
    		{
    			line=in.readLine();
    			if(line!=null)
    				server.broadcast(line);
    		}
    	} catch (IOException e)
    	{
    		System.out.println("Fehler:" + e);
    	}
    }
    
    Der Laufteil des connection-Objekts besteht aus einer Endlosschleife, die ständig alle hereinkommenden Nachrichten in Empfang nimmt und an alle anderen Verbindungen schickt - da er selbst nicht wissen kann, wer das eigentlich ist, muss dazu die broadcast-Methode des Server-Objekts verwendet werden.



Der Chat-Server Das Chat-Applet
Nach oben

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