Java-Chat-Code

May 11

Die Java-Objekt-Hierarchie enthält viele Klassen, die viele Arten von Datentypen und Datenverbindungen zu behandeln. Die "Socket" und "ServerSocket" Klassen stellen einfache Verbindungen, die ein Java-Programm ein anderes Programm über die Ports eines Computers vornehmen kann. Durch diese Objekte kann ein Java-Programm Daten oder Nachrichten, z. B. Text, von einem Remotecomputer empfangen. Also würde beispielsweise ein einfache Chat-Client in Java geschriebene führen Socket und ServerSocket-Objekte, um Nachrichten senden und empfangen.

Chatserver und ServerSocket

In seiner einfachsten wird ein Java-Chat-Server ein ServerSocket-Objekt verwenden, um eine Verbindung zu überwachen. Die "akzeptieren"-Methode erzwingt des Programms warten, bis eine Verbindung hergestellt wird. Diese Methode gibt ein Objekt "Socket", die angenommene Verbindung darstellt. Wie im folgenden Codebeispiel wird veranschaulicht, das Chatprogramm immer eine eingehende Verbindung auf einen bestimmten Port überwachen und den Socket Verbindung zurück:

Importieren Sie java.net.ServerSocket;Importieren Sie 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); Socket s = server.accept(); }

}

Empfangen von Nachrichten

Sobald die Verbindung hergestellt ist, kann der Programmierer Eingabe beim Lesen vom Socket. Diese Eingabe, die Nachricht von einem anderen Geschwätz, wird in ein Objekt "BufferedInput" gelesen, das dann seine Informationen in eine String-Variable lesen können:

BufferedReader Eingabe = new BufferedReader (neue InputStreamReader ()

s.getInputStream()));

Int i = input.readline();

Speichern von Nachrichten

Beim Empfang von Nachrichten vom Remotecomputer möglicherweise vorteilhaft für sie in einem Array zu speichern, so dass mehrere Nachricht nicht verloren. In der Praxis ist zum Speichern von Nachrichten in einem Array mit einem drehenden "while"-Schleife was der Programmierer tun könnte. Für jede empfangene Nachricht wird die Schleife eine Nachricht in das Array speichern und verschieben auf den nächsten Index Aufwickeln auf den ersten Index auf, wenn das Array voll ist:

String [] Nachrichten = new String [20];intIndex = 0;Nachricht = input.readLine();

während (Nachricht! = Null) {}Nachrichten [Index] = Nachricht;Index ++;Nachricht = input.readLine();}

Senden von Nachrichten

Der Programmierer kann auch Socket-Objekte verwenden, Verbindung zu einem Remotecomputer, die Kommunikation überwacht. Mit der Socket Verbindung herstellen, kann der Programmierer einen Ausgabestream zum Senden einer Nachricht an den Benutzer öffnen. Sie erreicht dies, indem unter Verwendung eines Objekts PrintWriter, Befestigung an der Socketausgabestream und über den Socket schreiben:

Buchse anschließen = neuen Socket ("http://www.computer.domain", 9999);

heraus = neue PrintWriter(connect.getOutputStream(), true);out.Print ("senden Nachricht...");