Skip to content

A program that implements an open general chat; Server; Client c; Client g; Bot

Notifications You must be signed in to change notification settings

MorozovArYu/Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Чат


Описание проекта


Чат - модульная программа реализующая идею открытых групповых чатов. ProgramExplorer.gif Модули:

  • Сервер
  • Консольный клиент
  • Графический клиент
  • Чат-бот
  • Вспомагательный модуль

Maven Java SE Git Swing Awt

Коротко о каждом модуле


Сервер

Задача сервера - устанавливать соединение с клиентами и организовывать общение между ними.

  • После подключения клиента создает новый поток для связи с ним
  • Инициализирует клиента по специальному протоколу
  • Уведомляет клиентов о поступающих сообщениях

ServerWork.gif

Консольный клиент

Задача клиента - подключиться к серверу и реализовывать взаимодействие пользователя с чатом через консоль

  • Устанавливает соединение по специальному протоколу
  • Создает поток для обработки входящих сообщений
  • Отправляет сообщения, введенные пользователем

ConsoleClient.gif

Графический клиент

Графический клиент работает по принципам консольного клиента, предоставляя пользователю графический интерфейс

  • Реализует паттерн MVC: GuiClientUML.png GuiClient.gif

Чат-бот

Чат-бот - консольный клиент, у которого нет возможности отправлять сообщения из консоли, он автоматически отправляет сообщения по командам:

  • дата
  • день
  • месяц
  • год
  • время
  • час
  • минуты
  • секунды

Bot.gif

Вспомагательный модуль

Вспомагательный модуль содержит классы - помошники:

  • Connection - управляет входными и выходными потоками от сокета
  • ConsoleHelper - управляет вводом и выводом из консоли
  • Message - POJO класс, содержит данные сообщений
  • MessageType - определяет элементы протокола связи сервера и клиентов

Структура проекта


LocalChatUml.png

Фреймворки:

  • java.io
  • java.net
  • java.swing
  • java.awt
  • java.text
  • java.util

Использованные паттерны:

  • Паттерн MVC

Протокол общения клиента и сервера


  • Когда новый клиент хочет подсоединиться к серверу, сервер должен запросить имя клиента.
  • Когда клиент получает запрос имени от сервера он должен отправить свое имя серверу.
  • Когда сервер получает имя клиента он должен принять это имя или запросить новое.
  • Когда новый клиент добавился к чату, сервер должен сообщить остальным участникам о новом клиенте.
  • Когда клиент покидает чат, сервер должен сообщить остальным участникам об этом.
  • Когда сервер получает текстовое сообщение от клиента, он должен переслать его всем остальным участникам чата.

Установка


Server-1.0-SNAPSHOT.jar - сервер

ConsoleClient-1.0-SNAPSHOT.jar - консольный клиент

GuiClient-1.0-SNAPSHOT.jar - графический клиент

Bot-1.0-SNAPSHOT.jar - бот

Важно! Сначала запускается и конфигурируется серверное приложение

About

A program that implements an open general chat; Server; Client c; Client g; Bot

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages