import java.io.*; import java.net.*; public class Console extends Thread { protected BufferedReader in; // Stream für Tastatureingaben protected PrintWriter out; // Ausgabestream auf Socket protected String nickName; public Console(Socket socket) { try { // Ein Stream zum Schreiben auf dem Socket out = new PrintWriter(socket.getOutputStream()); in = new BufferedReader(new InputStreamReader(System.in)); } // Stream, um Textzeilen von der Console zu lesen catch (IOException e) { System.err.println("Error: " + e); } } public Console(Socket socket, String nickName) { this(socket); this.nickName = nickName; // Nickname zuweisen } public void run() { String line; try { while (true) { line = in.readLine(); // Eine Zeile von der Tastatur einlesen... if (line == null) break; send(line); // ...und zum Server schicken } } catch (IOException e) { System.err.println("Error: " + e); } } public void send(String line) { if (nickName != null) out.print(nickName + ": "); // Nicknamen ausgeben if (line != null) { // Zeile an Socket ausgeben out.println(line); out.flush(); } } public void finalize() { out.close(); // Ausgabestream schließen } }