Die Java- Objekt-Hierarchie enthält viele Klassen, die viele Arten von Datentypen und Datenverbindungen zu behandeln. Der " Sockel " und " ServerSocket " Klassen stellen einfache Verbindungen ein Java-Programm in ein anderes Programm über die Häfen von einem Computer machen kann. Durch diesen Objekten kann ein Java-Programm empfangen Daten oder Nachrichten , wie Text, von einem Remote- Computer. So, zum Beispiel, würde ein einfaches Chat-Client in Java geschrieben sind, laufen Sockel und ServerSocket Objekte zum Senden und Empfangen von Nachrichten . Chat -Server und ServerSocket
Am einfachsten wird ein Java Chat-Server verwenden ServerSocket Objekt , um eine Verbindung zu hören. Die "accept" Verfahren zwingt das Programm warten, bis eine Verbindung hergestellt wird. Diese Methode gibt eine "Steckdose" Objekt, das die Verbindung akzeptiert . Wie im folgenden Beispiel dargestellt , wird das Chat-Programm immer auf eine eingehende Verbindung an einem bestimmten Port zu hören und gibt die Anschlussbuchse :
Import java.net.ServerSocket , Import java.net.Socket ; import java . io.BufferedReader , Import java.io.InputStreamReader ;
Klasse Chat {
public static void main (String [] args ) { ServerSocket s = null; s = new ServerSocket ( 9999) ; Sockel s = server.accept (); }}
Empfangen von Nachrichten
Sobald die Verbindung hergestellt ist , kann der Programmierer Eingang aus der Steckdose zu lesen. Dieser Eingang wird die Nachricht von einem anderen Chatter , wird in eine " BufferedInput " Objekt, das dann lesen kann seine Informationen in eine String Variable zu lesen :
BufferedReader input = new BufferedReader ( new InputStreamReader ( s.getInputStream () ) ); String message = input.readline ();
speichern von Nachrichten
bei Empfang von Nachrichten von dem Remote-Computer , kann es vorteilhaft sein, um sie zu speichern in einer Reihe , so daß eine mehrfache Nachricht nicht verloren geht. In der Praxis , was der Programmierer tun könnte ist store Nachrichten in einem Array mit einer revolvierenden "while" -Schleife. Für jede empfangene Nachricht , die Schleife wird eine Nachricht in das Array zu speichern und zum nächsten Index , Umwickeln der erste Index , wenn das Array ist voll:
String [] Nachrichten = new String [20]; int index = 0; message = input.readLine ();
while ( message = null ) { messages [ index] = Nachricht; index + +; message = input.readLine ();}
< br >
Senden von Nachrichten
Der Programmierer kann auch Socket-Objekte zu einem Remote- Computer, der für die Kommunikation abhört verbinden . Durch die Verwendung der Steckdose zu verbinden, kann der Programmierer öffnen Sie ein Ausgabe-Stream , um eine Nachricht an den Benutzer zu senden. Sie erreicht dies durch die Verwendung eines PrintWriter Objekt , Befestigung an der Buchse des Ausgabe-Stream und schriftlich durch den Sockel : Sockel
connect = new Socket ( " http: \\ \\ www.computer.domain " , 9999) ;
out = new PrintWriter ( connect.getOutputStream () , true); out.print ( " Sende Nachricht ...");