
- •Глава 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.