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




Система обмена сообщениями

 

Выполнил: ст.гр. ИВТ-10

Попов Владимир Михайлович

 

 

 

Новокузнецк 2013

Содержание

 

Содержание. 2

Введение. 3

1.Теоретический анализ и проектирование. 5

1.1. Постановка задачи. Функции системы. 5

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

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

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

2. Программная реализация. 12

2.1 Используемые компоненты. 13

2.2 Описание свойств и методов. 14

2.3 Исходный код Сервера отвечающий за сетевое взаимодействие. 16

2.4 Исходный код Клиента отвечающий за сетевое взаимодействие. 19

2.5 Порядок работы с программой. 24

2.5.1 Работа с сервером. 24

2.5.2 Работа с клиентом. 27

2.6 Тестирование системы.. 29

Заключение. 30

Используемые источники. 31

 

 

Введение

 

Чат, чаттер (англ. chatter — болтать) — средство обмена сообщениями по компьютерной сети в режиме реального времени, а также программное обеспечение, позволяющее организовывать такое общение. Характерной особенностью является коммуникация именно в реальном времени или близкая к этому, что отличает чат от форумов и других «медленных» средств. Передача сообщений в режиме реального времени и есть главная особенность и преимущество чатов. Несмотря на бурный рост информационной индустрии, тема текстовых чатов всё ещё не потеряла своей актуальности и их часто используют на предприятиях или офисах, когда важно быстро получать или отправлять важную информацию.

Существует несколько разновидностей программной реализации чатов:

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

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

· Программы-чаты для общения в локальных сетях (например, Vypress Chat, Intranet Chat, Pichat). Часто есть возможность передачи файлов.

· Чаты, реализованные поверх сторонних протоколов (например, чат, использующий ICQ).

· Чаты, работающие по схеме клиент-сервер, это позволяет использовать их в сетях со сложной конфигурацией, а также управлять клиентскими приложениями (например, Mychat,Jabber)

В данном курсовом проекте, будет разработана программа клиент-серверного чата, с возможность общения нескольких человек одновременно(all2all) в локальной сети.


 

Теоретический анализ и проектирование

Постановка задачи. Функции системы.

 

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

Функции сервера:

· Выбор порта для работы.

· Подключение клиентов.

· Ведение списка всех подключённых клиентов.

· Пересылка сообщений (Общих или приватных).

· Функции администрирования клиентов (удаление, изменение имени, сообщение от имени администратора).

· Ведение лога (история работы сервера).

· Принятие и пересылка файлов.

Функции клиента:

· Подключение к серверу, используя IP адрес и порт сервера.

· Выбор имени (Nickname) под которым вас будут видеть остальные участники чата.

· Отправка сообщений всем подключённым клиентам.

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

· Список всех клиентов сервера (получает от сервера).

· Возможность отправить файл.

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

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

· Web-серверы

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

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

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

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

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

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

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

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

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

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

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

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

 


 

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

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

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

Выбор протокола транспортного уровня пал на протокол 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(Команды сервера).

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

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

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

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

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

Команда Интерпретация
#F<имя файла> Получение файла.
#K<новое имя> Сервер прислал новый ник
#U{<имя>} Сервер прислал список клиентов
#M<сообщение> Общее сообщение
#P<имя отправителя>;<имя получателя>;<сообщение> Приватное сообщение
#N Запрос имени от сервера
#D<имя> Отключение администратором
#A<сообщение> Сообщение от администратора

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

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

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

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

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

 


 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: