Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Работа (Чат) v1.1.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
194.29 Кб
Скачать

1.2. Архитектура системы.

Мною выбрана одноуровневая Клиент-серверная архитектура. Архитектура клиент-сервер применяется в большом числе сетевых технологий, используемых для доступа к различным сетевым сервисам:

  • Web-серверы

  • Серверы приложений

  • Серверы баз данных

  • Файл-серверы

  • Прокси-сервер

  • Файрволы (брандмауэры)

  • Почтовые серверы

Преимущества 

  • Отсутствие дублирования кода программы-сервера программами-клиентами.

  • Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.

  • Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.

  • Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п.

  • Позволяет разгрузить сети за счёт того, что между сервером и клиентом передаются небольшие порции данных.

1.3 Протокол. Описание протокола взаимодействия

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

Мой собственный протокол будет использовать текст для обмена, в отличии от бинарного протокола обмена, текстовый намного проще в освоении и т.к моей задачей является создание системы обмена мгновенными сообщениями, то очевидно что, текстовый протокол является наилучшим выбором.

Выбор протокола транспортного уровня пал на протокол TCP/IP, по следующим причинам:

  • TCP/IP сокеты используются для реализации надежных поточных соединений между компьютерами в сети Internet.

  • Соединение с использованием TCP/IP сокетов является постоянным и определяется в двух направлениях. C помощью TCP/IP сокетов можно программировать подключение систем ввода/вывода к программам, расположенным на любом компьютере в сети.

  • Помимо этого TCP/IP сокеты позволяют реализовать подключение и к локальной машине.

  • Зачастую на практике для соединения по TCP/IP сокетам на компьютерах открываются определенные порты, что позволяет расширить и разграничить канал подключения компьютера.

Всё взаимодействие сервера и клиента будет заключаться в специальных командах посылаемых друг другу в виде текстовых строк.

Вначале каждой команды стоит знак #, после идёт сама команда, а после команды параметры присущи этой команде, в общем виде это выглядит так:

#<Команда>[<параметр1>{;<параметр1>}]

Полный список Специальных команд сервера и клиента, представлен ниже в таблице №1 и №2.

Команды сервера

Команда

Интерпретация

#M<имя отправителя>;<сообщение>

Сообщение для всех подключённых клиентов.

#N<имя отправителя>

Клиент посылает своё имя (nickname)

#P<имя отправителя> ;<имя получателя>;<сообщение>

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

#F<имя файла>

Получение файла

#S<имя файла>

Отправка файла всем клиентам

Таблица №1(Команды сервера).

Особенности:

  • При получении сообщения, неважно общее оно или приватное, сервер рассылает его всем подключённым к нему клиентам, но принимает это сообщение только клиент, чьё имя совпадает с именем получателя, в случае с приватным сообщением.

  • При получении, какого либо файла сервер сохраняет файл во временной папке и после этого рассылает файл всем подключённым клиентам. (Файлы в папке хранятся до выключения программы)

  • Значение приватности не работает при пересылке файла.