- •Глава 1. Специальная часть. Разработка программного обеспечения управления автоматизированным комплексом многоканальной связи
- •Глава 2. Технологическая часть. Технология программирования и средства отладки в среде Borland Delphi 5
- •Глава 3. Сегментация потребителей программы передачи и приёма сообщений
- •1.1. Эскизный проект.
- •1.1.1. Описание протоколов, используемых при написании дипломной работы
- •1.2.2. Обзор аналогичных программ принятия и отправки сообщений.
- •1.3. Технический проект.
- •1.3.1. Общая структура системы
- •1.3.1.1. Почтовый слот (mailslot)
- •1.3.1.1.2.Чтение из почтового слота.
- •1.3.1.2. Протокол NetBios и его команды.
- •1.3.1.2.1. Структура ncb.
- •1.3.1.2.2. Коды ошибок и их значения блока ncb
- •1.3.2. Визуальные компоненты Delphi, используемые при разработке данного дипломного проекта.
- •1.3.3. Требования, предъявляемые к программе отправки и приёма сообщений.
- •1.3.4. Выбор платформы проектирования, обоснование.
- •1.3.5. Конфигурация технических средств.
- •Рабочий проект.
- •1.4.1. Интерфейс программы.
- •1.4.2. Описание с методы работы с программой Messenger
- •1.4.3. Поиск компьютеров в локальной сети.
- •1.4.4. Отправление сообщений.
- •1.4.5. Структура приёма сообщений.
- •1.4.6. Заключение.
- •2.1. Введение.
- •2.2. Особенности разработки программ в среде Delphi 5.
- •2.2.1. Визуальная компонентность.
- •2.2.2. Многократное использование кода.
- •2.3. Cоздание программ в среде Delphi.
- •2.4. Основные этапы решения задач на эвм.
- •2.5. Методы и средства отладки
- •2.5.1.1. Контроль текста
- •2.5.1.3. Проверка
- •2.5.1.4. Прокрутка
- •2.5.1.5. Печать текста
- •2.5.3.1. Алгоритмическое тестирование
- •2.5.3.2. Функциональное или аналитическое тестирование
- •2.5.3.3. Содержательное тестирование
- •2.6. Типы тестов
- •2.6.3. Аварийный тест
- •2.6.4. Стыковочные тесты
- •2.6.5. Комплексные тесты
- •2.7. Локализация ошибок
- •2.8.Интегрированный отладчик Delphi
- •2.9. Пошаговая отладка
- •2.10. Заключение
- •3.1. Введение
- •3.1.1. Методика определения сегментов рынка.
- •3.1.2. Поиск сегментов рынка для программы посылки сообщений.
- •3.2. Выводы
- •4.1. Факторы при работе с компьютером
- •4.2 Организация рабочего места пользователя эвм
- •4.2.1 Интенсивность труда
- •4.2.2. Электробезопасность
- •4.2.3. Пожаробезопасность.
- •4.2.4. Микроклимат
- •4.3. Освещённость рабочего места.
- •4.4. Шум. Общие требования безопасности
- •4.5. Психофизиологические факторы
- •4.6. Расчёт воздухообмена
- •4.7. Выводы
1.3.1.1.2.Чтение из почтового слота.
Для чтения из слота используется функция ReadFile(), которая завершает свою работу после получения сообщения, независимо от того, сколько байт необходимо прочитать.
Кроме того, с помощью функции GetMailSlotInfo() можно узнать количество сообщений, ожидающих в очереди слота, и размер следующего сообщения.
Запись в почтовый слот.
Для записи сообщения в слот необходимо сначала открыть его ключ с помощью функции CreateFile(), а затем воспользоваться функциейWriteFile() для посылки сообщения. Ключ слота закрывается функцией CloseHandle().
При вызове CreateFile() необходимо указать имя слота, которому посылается сообщение. Указанное имя допускает циркулярную рассылку данных всем слотам с такими же именами на компьютерах домена.
Для локального компьютера имя слота выглядит следующим образом:
\\.\mailslot\[путь] имя
Для удалённого компьютера имя слота имеет следующий вид:
\\имя_удалённого_компьютера\mailslot\[путь] имя
Для рассылки сообщений всем слотам с одинаковыми именами на компьютерах домена необходимо указать следующее имя:
\\имя_домена\mailslot\[путь]имя
Для рассылки всем компьютерам в домене более высокого иерархического уровня используется следующее имя:
\\*\mailslot\[путь] имя
Кроме того, при вызове функции CreateFile() можно выбрать режимGENERIC_WRITE, режим совместного использованияFILE_SHARE_READ или режим созданияOPEN_EXISTING.
После успешного завершения функции CreateFile() ключ, который она возвращает, можно использовать в функцииWriteFile() для посылки сообщений на слот.
Закрытие слота.
По окончании работы с почтовым слотом кго необходимо закрыть вызовом функции CloseHandle() для освобождения ассоциированных с ним системных ресурсов. По завершении процесса все ключи слотов, ассоциированные с процессом, закрываются автоматически. После их закрытия почтовый слот уничтожается, а все данные в его буфере теряются.
1.3.1.2. Протокол NetBios и его команды.
При написании программы с использованием протокола NetBIOS используется блок управления сетью – Net Control Block (NCB). В таблице 1 проиллюстрирована структураNCB, длина и значение каждого поля. Все поля блока NCB перенесены вWinAPI, соответственно, программирование наDelphi с использованием командNetBIOS является достаточно тривиальной задачей.
1.3.1.2.1. Структура ncb.
Имя поля Длина и значение |
NCB_COMMAND 1 Поле команды Блока управления сетью (NCB)
NCB_RETCODE 1 Поле кода возврата NCB
NCB_LSN 1 Поле номера локального сеанса NCB
NCB_NUM 1 Поле номера имени NCB
NCB_BUFFER@ 4 Указатель NCB на адрес буфера сообщений
NCB_LENGTH 2 Длина буфера NCB (в байтах)
NCB_CALLNAME 16 Имя NCB на местном или удаленном адаптере
NCB_NAME 16 Имя NCB на местном адаптере
NCB_RTO 1 Величина тайм-аута получения сообщения
NCB_STO 1 Величина тайм-аута отправления сообщения
NCB_POST@ 4 Указатель NCB на подпрограмму регистрации
NCB_LANA_NUM 1 Номер адаптера NCB
NCB_CMD_CPLT 1 Поле состояния команды NCB
NCB_RESERVE 14 Зарезервированная область NCB
Таблица 1. Стуктура блока управления сетью по протоколу NetBIOS.