Skip to content

Conversation

@iakkov
Copy link
Owner

@iakkov iakkov commented Feb 22, 2025

Данная программа представляет собой многопользовательский серверный чат, поддерживающий подключение клиентов через консоль, а также графический интерфейс (JavaFX), и работающий на базе серверного консольного приложения. Сервер управляет аутентификацией пользователей, комнатами для общения, приватными сообщениями и правами администратора.

Технические детали

  • Язык программирования: Java.

  • Библиотеки:

  1. JavaFX – графический интерфейс.
  2. PostgreSQL – база данных пользователей.
  • Сетевой стек:
  1. Сервер – ServerSocket, клиенты – Socket.
  2. Используется DataInputStream и DataOutputStream для передачи данных.

Основные возможности чата

  • Аутентификация и регистрация
  • Регистрация нового пользователя через команду /reg, ввод логина, пароля и никнейма.
  • Аутентификация пользователя через команду /log, ввод логина и пароля.
  • Все учетные данные хранятся в базе данных (PostgreSQL).
  • При повторном входе проверяется, находится ли пользователь уже в сети.

Основные функции чата

  • Отправка и получение сообщений в реальном времени.
  • Время отправки сообщений добавляется автоматически ([HH:mm:ss]).
  • Просмотр списка пользователей онлайн через команду /online.
  • Личные сообщения через команду /w [ник] [сообщение].

Административные функции
Роли пользователей:
USER – обычный пользователь.
ADMIN – может отключать (/kick) и блокировать (/ban) пользователей.

  • Кик пользователя: /kick [ник] – отключает пользователя от чата.
  • Блокировка пользователя: /ban [ник] – запрещает отправку сообщений.
  • Разблокировка пользователя: /unban [ник].

Система комнат

  • Создание комнаты: /createroom [название].
  • Присоединение в комнату: /room [название].
  • Выход из комнаты в общий чат: /exitroom.
  • Внутренний чат комнаты – сообщения не видны за пределами комнаты.

…вершение работы с клиентом на сервере
…ботки сообщений теперь работают до момента пока socket.isClosed()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants