- ##client thread
- public ClientSocketSrvHandler(Socket socket, ClientSocket client) throws IOException {
- this.socket = socket;
- this.client = client;
- bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- //bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
- }
- public void run() {
- while (true) {
- try {
- response = bufferedReader.readLine();
- if (response.startsWith("@broadcast")) {
- System.out.println("broadcast received");
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- public String getResponse() throws InterruptedException, IOException {
- //this.client.wait();
- //response = bufferedReader.readLine();
- if (response == null) {
- System.out.println("no answer.");
- }
- else {
- System.out.println("srv thread - message received: " + response);
- //this.client.notify();
- return response;
- }
- return "";
- }
- ##main client
- public ClientSocket(String host, int port) throws UnknownHostException, IOException {
- this.host = host;
- this.port = port;
- System.out.println("Connecting to server. Host: " + host + " - port: " + port);
- socket = new Socket(host, port);
- System.out.println("Connected.");
- //bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- bufferedWriter = new BufferedWriter(
- new OutputStreamWriter(socket.getOutputStream()));
- panel = new PanelSocket(this);
- client_sck_srv_handler = new ClientSocketSrvHandler(socket, this);
- }
- /**
- * Starts the client.
- * @throws UnknownHostException if the IP address could not be determined.
- */
- public void run() {
- /*ClientSocketSrvHandler client_sck_srv_handler = new ClientSocketSrvHandler(socket, this);*/
- client_sck_srv_handler.start();
- Scanner scan = new Scanner(System.in);
- System.out.print("Username:\n");
- String username = scan.next();
- System.out.print("Password:\n");
- String password = scan.next();
- String command = "@login,user="+username+",pass="+password;
- bufferedWriter.write(command);
- bufferedWriter.newLine();
- bufferedWriter.flush();
- String answer = client_sck_srv_handler.getResponse();
- if (answer != null) {
- System.out.println(SERVER_RESPONSE + answer);
- if (answer.startsWith(OK)){
- //save the token
- String[] splitted = answer.split(",");
- this.token = splitted[1];
- System.out.println("token received: " + this.token);
- return true;
- }
- }
- return false;
- }