Система обмена сообщениями является одним из самых доступных и востребованных средств общения в Интернете, в корпоративных и локальных сетях. Наиболее распространенными среди таких систем являются системы передачи текста. Следовательно, на сегодняшний день актуальна проблема создания систем обмена текстовыми сообщениями.
Разработкой систем обмена сообщений, изучения протоколов электронной почты занимались А. Шетухин и др. [1-5]. О том что чат является формой синхронного общения в своих исследованиях показали В.Н. Кухаренко и Н.Г. Сиротенко [6]. Передачу сообщений дополнительной расширенной информации в формате полезной нагрузки транспортного протокола реального времени описали М. Ханнуксела и Й. К. Ванг [7].
В рамках изучения информационных сетей на основе существующего прикладного протокола разработан собственный, позволяющий реализовать систему обмена текстовыми сообщениями с отложенным чтением сообщений.
Для реализации данной системы были выбраны POP3 и SMTP протоколы. POP3- это протокол для работы пользователя с почтовым ящиком. Другими словами, данный протокол позволяет реализовать возможность изъятия накопившейся информации с почтового ящика, а также возможностью ее удаления.
SMTP- это протокол передачи сообщений в сети Internet. SMTP осуществляет передачу сообщений между компьютерами от сервера к клиенту и наоборот.
При проектировании структуры и базовых алгоритмов системы обмена сообщениями в первую очередь был продуман графический интерфейс программы.
Интерфейс включает в себя:
- главное меню с основными пунктами: «Файл» с подменю «Выход» и «Настройки» с подменю «Настройки»
- кнопки быстрого управления для подключения клиентской части программы к серверу, либо создания серверной части при невозможности подключения к серверной части.
- три основных поля:
1) поле для вывода переписки пользователями
2) поле для ввода сообщений, для последующей отправки
3) поле вывода списка пользователей, находящихся в чате
При реализации базового алгоритма было предусмотрено наличие большое количество программного кода. Вследствие чего исходный код программного обеспечения был разбит на несколько модулей:
1. MainUnit– основная часть программы. В данную часть входит:
1) Процедура обрабатывающая событие нажатия кнопки «Подключиться». В данной процедуре происходит определение режима работы программы, будет ли запущена от имени сервера или же клиента. При определении данного значения происходит назначение соответствующих параметров для программы.
2) Процедура обработки событий нажатия кнопки «Отправить». Обрабатывает события, которые должны выполняться при нажатии кнопки. При обработке события происходит проверка режима работы программы и выполнение соответствующих действий в зависимости от того находится ли программа в режиме клиента или сервера.
3) Процедура обработки события чтения Soket’ов клиентом. В данной процедуре происходит определение команды, которую необходимо выполнить клиентским приложением и в соответствии с определенной командой выполнение необходимой операции:
0: Отправка сообщения, написанного пользователем
1: Отправка имени пользователя
2: Получение полного списка подключенных пользователей
3: Оповещение сервера принять файл
4: Получение файла с сервера
4) Процедура обработки ошибок подключения клиентской части программы с выводом соответствующего сообщения.
2. Server – в данном модуле расположены основные функции и процедуры, предназначенных для выполнения команд серверной части. Процедура предназначена для обновления списка пользователей. В данной процедуре реализовано получение имен пользователей от каждого подключенного клиента, формирование общего списка и отправка данного списка всем клиентам. Сюда входит:
1) Дополнительная процедура, предназначенная для получения списка пользователей из массива данных и запроса имени подключившегося клиента.
2) Процедура определения полученной команды от клиента с последующим ее выполнением. Содержит следующий список команд:
0: Отправка полученных сообщений клиентам
1: Получение имени подключенных пользователей
2: Отправка клиентскому приложению файла
3: Запроса на отправку файла
3) Процедура отправки файла через сокет и отправки его определенными частями клиенту.
4) Процедура отправки запроса клиентской части на возможность отправки файла сервером. В данной процедуре производится сохранение блога сообщений в файл и определение основных параметров файла, необходимых для передачи последующего запроса на отправку файла клиентской части программы.
3. Settings – модуль визуального окна настройки, для настройки программы. В данном модуле реализована загрузка и сохранение настроек программы посредством чтения или записи необходимых значений.
Интерфейс программы реализован с использованием двух визуальных форм.
На основной форме расположены следующие визуальные компоненты (рис. 1):
1. TmainMenu – для организации главного меню программы;
2. TextEdit – поле ввода текстового сообщения, для последующей отправки пользователям;
3. TMemo – Поле для вывода сообщений, основной чат;
4. TButton – используется две кнопки для подключения/ отключения к чату и отправки сообщений;
5. TListView – для отображения подключившихся пользователей;
6. TGroupBox – для группировки отдельных компонентов.
Рисунок 1 - Главная форма программы
На дополнительной форме вынесены настройки для программы. Содержит три пункта:
- Порт подключения;
- IP адрес сервера;
- Ник пользователя.
Для организации использованы следующие визуальные компоненты: три компонента TextEdit и два компонента TButton – для сохранения и отмены изменений настроек (рис. 2).
Рисунок 2 - Форма настроек программы
В процессе выполнения работы произведен анализ существующего протокола прикладного уровня: система обмена текстовыми сообщениями с отложенным чтением сообщений. Изучены команды прикладного протокола. Разработана программа, реализующая собственный прикладной протокол системы обмена тестовыми сообщениями с отложенным чтением сообщений, в среде программирования Delphi.
Библиографический список
- Шетухин А. Создаем почтовый сервер. Полное руководство. Системный администратор. 2008. №7(68). С. 6-9.
- Сицын В. Универсальный прокси-сервер. Системный администратор. 2005. №2(27). С. 34-38.
- Мясищев А.А., Полозова В.М. Ознакомление с командами POP3- сервера при изучении дисциплины «Компьютерные сети» для получения E-Mail. Теория и методика обучения математике, физике, информатике. 2004. Т. 4. №3(12). С. 210-213.
- Zhang Z. An SMTP filter system. 1984.
- SMTP, Please! Callaway E. PC Week. 1995. Т. 12. №17. С. Е/5.
- Кухаренко В.Н., Сиротенко Н.Г. Чат как форма синхронного общения. Образовательные технологии и общество. 2003. Т. 6. № 1. С. 165-167
- Ханнуксела М. и Ванг Й. К. Передача сообщений дополнительной расширенной информации в формате полезной нагрузки транспортного протокола реального времени. Патент на изобретение RUS 2430483 17. 01. 2008.