import java.net.*;
import java.io.*;

class ChatClient extends Thread {
  final static int PORT = 12345;
  BufferedReader in;  

  public ChatClient(BufferedReader in) {
	this.in = in;
	setDaemon(true);
	start();
  }

  public void run() {
    String line; 
    try {
      while (true) {
        line = in.readLine();     // liest vom Server
        if (line == null) break;  // Abbruch bei Ctrl-Z
        System.out.println(line); // schreibt auf Console
	  }
	} catch(SocketException e) { /* bei Chat-Ende */ }  
      catch(IOException e) {e.printStackTrace();}
  }

  public static void main(String[] args) {
	String line; 
	BufferedReader in;  
	BufferedReader consoleIn;  
	PrintStream out;     
	Socket sock; 

	try {
      if (args.length != 2) {
        System.out.println("usage: java Client <name> <host>");
      }
      else {
        sock = new Socket(args[1], PORT);
        out = new PrintStream(sock.getOutputStream()); 
        in = new BufferedReader(
      	       new InputStreamReader(sock.getInputStream()));
        consoleIn = new BufferedReader(new InputStreamReader(System.in));
        out.println(args[0]); // Name des neuen Chatters
        new ChatClient(in);
        while (true) {
      	  line = consoleIn.readLine(); // liest von Console
		  if (line == null) break;     // Chat-Ende mit Ctrl-Z
          out.println(line);           // schickt an Server
		}
		sock.close();
      }
	} catch(IOException e) {e.printStackTrace();}
  }
}

