Exemplo n.º 1
0
  public void run() {
    try {
      in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      out = new PrintStream(socket.getOutputStream());
      Server.outputStreams.put(socket, out);

      // Get user name
      userName = in.readLine();
      System.out.println(userName.toString() + " has connected");
      insertClientMessage(userName.toString() + " has connected");
      sendToAll(userName.toString() + " has connected");
      Server.userList.add(userName.toString());
      System.out.println(Server.userList.toString());

      System.out.println("Connected Users: " + Server.userList.toString());
      insertClientMessage("Connected Users: " + Server.userList.toString());

      sendToAll("Connected Users: " + Server.userList.toString());
      System.out.println("Num users: " + Server.clientsConnected);
      while (Server.isRunning) {
        message = in.readLine();

        if (message.equals("")) {

        } else {
          System.out.println(message);
          sendToAll(message);
          insertClientMessage(message);
        }

        if (Server.vBar.getValue() != Server.vBar.getMaximum()) {
          Server.vBar.setValue(Server.vBar.getMaximum() + 1);
          Server.messages.setCaretPosition(Server.messages.getDocument().getLength());
        }
      }

    } catch (Exception e) {
      System.out.println("An error occured or a user has disconnected");
      try {
        insertClientMessage("An error occured or a user has disconnected");
      } catch (BadLocationException e1) {
        e1.printStackTrace();
      }
      e.printStackTrace();
    } finally {
      try {
        System.out.println(userName + " has disconnected");
        Server.clientsConnected--;
        Server.userList.remove(Server.userList.indexOf(userName.toString()));
        Server.outputStreams.remove(out);
        if (Server.clientsConnected != 0) {
          sendToAll(userName + " has disconnected");
          sendToAll("Connected Users: " + Server.userList.toString());
          insertClientMessage(userName + " has disconnected");
          insertClientMessage("Connected Users: " + Server.userList.toString());
        }

        in.close();
        out.close();
        socket.close();
      } catch (Exception e) {
        System.out.println("Everything didn't close right");
        try {
          insertClientMessage("Everything didn't close right");
        } catch (BadLocationException e1) {
          e1.printStackTrace();
        }
        e.printStackTrace();
      }
    }
  }