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

Команды клиента

Команда

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

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

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

#K<новое имя>

Сервер прислал новый ник

#U{<имя>}

Сервер прислал список клиентов

#M<сообщение>

Общее сообщение

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

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

#N

Запрос имени от сервера

#D<имя>

Отключение администратором

#A<сообщение>

Сообщение от администратора

Таблица №2(Команды клиента).

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

  • Так же как и у сервера у клиента есть временная папка, которая очищается после закрытия программы.

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

  • Сообщение от администратора появляется не в общем чате а в всплывающем окне.

1.4 Взаимодействие клиента и сервера

Предположим что сервер запушен и нормально функционирует, рассмотрим типичные ситуации работы в сети:

1.Подключение клиента:

  • Клиент подключается к серверу зная его адрес и порт.

  • Сервер обнаружив новое соединение, отправляет на все соединения строку ‘#N’ (Запрос имени клиента).

  • Все подключенные клиенты в том числе и только что подключенный, получив запрос сервера отправляют на сервер строку ‘#Nимя’, где «имя» это имя клиента.

  • Сервер получив такую строку добавляет «имя» в список клиентов.

2.Отключение клиента:

Отключение может произойти по разным причинам: клиент сам отключился, клиента отключил администратор, из-за сбоя работы сервера или клиента.

  • Отключившись клиент просто прерывает связь с сервером.

  • Сервер заметив что кто то отключился, запрашивает у оставшихся подключений их имена послав строку ‘#N’ (Запрос имени клиента).

  • Все подключенные клиенты, получив запрос сервера отправляют на сервер строку ‘#Nимя’, где «имя» это имя клиента.

  • Сервер получив такую строку добавляет «имя» в список клиентов.

Если инициатива отключения исходит от администратора:

  • Сервер посылает строку ‘#Dимя’ всем подключенным клиентам, где «имя» это имя клиента который должен отключиться.

  • Клиент узнав своё имя отключается от сервера

Если произошёл сбой работы сервера:

  • Клиент поняв что сервер не отвечает, разрывает соединение с неактивным сервером.

Если произошёл сбой работы клиента, то процедура отключения ничем не отличается от обычной.

3.Отправка общего сообщения:

  • Клиент посылает на сервер строку ’ #M сообщение’, где сообщение это текст который клиент хочет чтобы видели все участники чата.

  • Сервер получив эту строку не изменяя её, просто рассылает её всем клиентам включая отправителя.

  • Клиенты получив эту строку отображают ‘сообщение’ в компонент отображения.

4.Отправка приватного сообщения:

  • Клиент c именем ‘имя1’ посылает на сервер строку ’ #Pимя1; имя2;сообщение’, где ‘сообщение’ это текст который клиент хочет отправить клиенту с именем ‘имя2’, ‘;’ - это разделитель.

  • Сервер получив эту строку не изменяя её, просто рассылает её всем клиентам включая отправителя.

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