package Client; import java.net.Socket; import java.util.*; import java.io.*; import javax.swing.JTextArea; public class ChatClientReader extends Thread { public static Scanner reader = new Scanner(System.in); private ChatClient client; private Socket soc; UserInterface ui; /** constructor * @param the socket */ public ChatClientReader (ChatClient client, Socket soc) { this.client = client; this.soc = soc; } public void setDisplay (UserInterface ui) { this.ui = ui; } /** Running the object and translate the input from bytes to letters*/ public void run() { try { String line; InputStreamReader inputTemp = new InputStreamReader(this.soc.getInputStream()); BufferedReader input = new BufferedReader(inputTemp); do { line = input.readLine(); // FIXME: more then 1 line if (line == null) { soc.close(); System.err.println("The line is empty"); break; } System.out.println(""); System.out.println(line); ParsedLine parsed = new ParsedLine(line); if (parsed.get("command").compareTo("PRIVMSG") == 0) { ui.outputWriter(parsed.get("nick") + ": " + parsed.get("message")); } else if (parsed.get("command").compareTo("PING") == 0) { this.client.runSendline("PONG :me"); } else { ui.outputWriter("[" + line + "]"); } } while (line != null); // FIXME: close socket here? } catch (IOException e) { System.err.println(e); return; } } }