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



Java-Chat selbst gemacht
Sockets, Client/Server & das Chat-System

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

    Sockets

    Die mit den Streams beschriebene Lösung bietet zwar eine Möglichkeit zur Kommunikation (es werden Daten von einer Stelle zur anderen übertragen), es findet jedoch keine Interaktion, also der Austausch von Daten, statt. Zwar könnte man auch einen Ausgabestream zu einer bestimmten URL öffnen, hinter der sich dann ein CGI-Programm verbirgt, das die Daten entgegennimmt - das dem Internet zugrunde liegende Übertragungsprotokoll TCP/IP bietet für Zweiwegekommunikation jedoch eine bessere Möglichkeit: Sockets.

    Eine der Eigenschaften des TCP/IP-Protokolls ist, dass die Daten, in Paketen verpackt, hin- und hergeschickt werden. Damit diese Datenpakete nun den richtigen Empfänger erreichen, wird jedem Paket eine sog. IP-Adresse zugeordnet. Im Internet besitzt jeder Server eine eigene IP-Adresse, mittels derer man jeden beliebigen Server weltweit eindeutig ansprechen kann.

    Stellen Sie sich vor, auf diesem Rechner sind, wie z.B. unter UNIX üblich, mehrere User zu Gange und haben sich über das Internet in andere Rechner eingewählt und verrichten dort verschiedene Sachen. Aber auch ein einziger Benutzer kann ja verschiedene Verbindungen zu verschiedenen Servern gleichzeitig aufbauen. Damit sich diese Verbindungen nun nicht gegenseitig in die Quere kommen wird jedem Datenpaket eine weitere Nummer, die sog. Port-Nummer mitgegeben. Anhand dieser Portnummer kann nun jedes Datenpaket genau dem Programm zugeordnet werden, das diese Verbindung nutzt.

    Diese Kombination aus Internet-Adresse und Port nennt man eben Sockets.

    Einige dieser Ports sind reservierte, standardisierte Ports, die bestimmten Netzdiensten zugeordnet sind, z.B. besitzt Telnet die Portnummer 23 und das WWW die 80. Alle Portnummern unter 256 sind für diese Standarddienste reserviert. Zwischen 256 und 1024 befinden sich UNIX-spezifische Dienste wie z.B. rlogin.
    Alle Nummern darüber, bis 16384 sind frei. Unser selbstprogrammiertes Chat-System hat natürlich keine Standard-Portnummer, wir können uns also eine Zahl aussuchen, im Beispiel nehmen wir einfach die 8765.


    Client/Server

    Mithilfe der Sockets wollen wir nun im folgenden das Chat-System programmieren, das es Nutzern, die ein bestimmtes Java-Applet geladen haben, erlaubt, sich miteinander zu unterhalten (engl. "to chat" = schwatzen).

    Da die Applets sich aufgrund der Sicherheitsbeschränkungen nicht direkt miteinander verbinden dürfen und ja vor allem auch erstmal nichts voneinander wissen, ist das Chat-System nach dem Client/Server-Prinzip aufgebaut: Auf einem Hauptrechner, dem Server, wird eine Applikation gestartet die laufend auf eingehende Verbindungen wartet. Auf diesem Rechner muss auch die HTML-Seite liegen, die das Chat-Applet enthält, folglich muss dort auch ein WWW-Server installiert sein. Wird die HTML-Seite von einem anderen Rechner, dem Client, geladen, startet dort das Applet und verbindet sich mit dem Server. Alle Eingaben werden an den Server geschickt, der diese wiederum an alle anderen, die sich mit ihm verbunden haben weiterleitet. Der Server fungiert also als eine Art Vermittler zwischen den Clients.


    Das Chat-System

    Insgesamt besteht das komplette Chat-System aus 3 Klassen: Dem Chat-Server, der auf dem Internet-Server als Applikation gestartet werden muss und auf eingehende Verbindungen von etwaigen Clients wartet, der Connection-Klasse, die diese Verbindungen dann übernimmt und den Datenaustausch mit den Clients regelt und schliesslich dem Client selbst, dem Chat-Applet, das im Browser des Nutzers läuft.




Sicherheit, URLs & Streams Der Chat-Server
Nach oben

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