![]() |
![]() ![]() die führende deutsche Java-Seite ![]() ![]() und Hannes Gamperl ![]() |
![]()
|
![]() Einführung
Workshops
Wissen
Ressourcen
K&K Intern
Weitere Angebote
EMail an java@acc.de
|
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. ![]()
| |||||
Nach oben |
© 1998 Christoph Bergmann / ACCESS Internet. Alle Rechte vorbehalten. |