Class ClientHandler

java.lang.Object
java.lang.Thread
server.ClientHandler
All Implemented Interfaces:
Runnable

public class ClientHandler extends Thread
Класс ClientHandler обрабатывает соединение с одним клиентом.

Отвечает за регистрацию, вход в систему, отправку и получение сообщений, а также управление историей сообщений и активными пользователями. Логирование действий происходит через Log4j2.

  • Constructor Details

    • ClientHandler

      public ClientHandler(Socket soc)
      Создаёт новый обработчик клиента с заданным сокетом.
      Parameters:
      soc - сокет, соединяющий сервер с клиентом
  • Method Details

    • isClosed

      public boolean isClosed()
      Проверяет, закрыто ли соединение с клиентом.
      Returns:
      true, если сокет закрыт или null, иначе false
    • run

      public void run()
      Основной метод потока, который запускается при старте ClientHandler.

      Обрабатывает команды клиента:

      • /register login password — регистрация нового пользователя
      • /login login password — вход в систему
      • /msg target message — отправка сообщения другому пользователю
      • /history user — вывод истории переписки с другим пользователем
      • /exit — завершение соединения

      Логирование событий:

      • Подключение клиента
      • Регистрация и вход пользователя
      • Отправка сообщений
      • Ошибки при обработке сообщений
      Specified by:
      run in interface Runnable
      Overrides:
      run in class Thread
    • sendMessage

      public void sendMessage(String message)
      Отправляет текстовое сообщение клиенту через сокет.
      Parameters:
      message - текст сообщения