Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_po_sp.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
308.78 Кб
Скачать

33) Работа с почтовыми ящиками в Windows

Почтовым ящиком называется объект ядра операционной системы, который

обеспечивает передачу сообщений от процессов-клиентов к процессам-

серверам, выполняющимся на компьютерах в пределах локальной сети.

Процесс, который создает почтовый ящик, называется сервером почтового

ящика. Процессы, которые связываются с именованным почтовым ящиком,

называются клиентами почтового ящика. Перечислим характеристики

почтовых ящиков:

□ имеют имя, которое используется клиентами для связи с почтовыми

ящиками;

□ направление передачи данных от клиента к серверу;

□ передача данных осуществляется сообщениями;

□ обмен данными может быть как синхронным, так и асинхронным.

Хотя передача данных осуществляется только от клиента к серверу, один

почтовый ящик может иметь несколько серверов. Это происходит в том

случае, если несколько серверов создают почтовые ящики с одинаковыми

именами. Тогда все сообщения, которые посылает клиент в такой почтовый

ящик, будут получать все серверы этого почтового ящика. Однако это

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

как в этом случае сообщения передаются дейтаграммами. Таким образом,

можно сказать, что почтовые ящики обеспечивают однонаправленную связь

типа "многие-ко-многим".

Создаются почтовые ящики процессом-сервером при помощи функции

createMaiisiot, которая имеет следующий прототип:

HANDLE CreateMaiisiot(

LPCTSTR lpName, // имя почтового ящика

DWORD dwMaxMessageSize // максимальная длина сообщения

DWORD dwReadTimeout, // интервал ожидания

LPSECURITY_ATTRIBUTES IpSecurityAttributes // атрибуты безопасности

);

В случае успешного завершения эта функция вернет дескриптор почтового

ящика, а в случае неудачи — значение invalid_handle_value.

34) Использование файловой системы и функций символьного ввода/вывода Windows

В операционных системах Windows полное имя файла представляется

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

не может превышать мах_ратн символов. Файловые системы FAT32 и NTFS

поддерживают полные имена файлов длиной до 255 символов. Такие имена

называются длинными.

Полное имя файла состоит из компонент (подстрок), каждая из которых разделяется символом \

(обратная косая). Каждая не последняя компонента полного имени файла задает имя каталога, в котором находится файл, а последняя компонента задает имя самого файла. Поэтому полное имя файла также часто называют путем к файлу, т. к. полное имя файла фактически описывает путь по дереву каталогов к его листу, который и представляет сам файл. При формировании пути к файлу нужно придерживаться определенных правил, которые перечислены ниже:

□ имена каталогов и файлов не должны содержать символов, ASCII-коды

которых находятся в диапазоне от 0 до 31 (это служебные символы);

□ имена каталогов и файлов не должны содержать символы <,>,:,",/, \ и |;

□ имена каталогов и файлов могут содержать символы из расширенного

множества, которое включает символы с кодами от 128 до 255;

□ для обозначения текущего каталога в качестве компоненты пути

используется символ . (точка);

□ для обозначения родительского каталога для текущего каталога в качестве

компоненты пути используются символы . . (две точки);

□ в качестве компонент пути нельзя использовать имена устройств, как,

например, aux, con, lpti и pm.

Для создания новых или открытия уже существующих файлов используется

функция createFile, которая имеет следующий прототип:

HANDLE CreateFile(

LPCTSTR lpFileName, // имя файла

DWORD dwDesiredAccess, // способ доступа

DWORD dwShareMode, // режимы совместного использования

LPSECUTITY_ATTRIBUTES IpSecurutyAttributes, // атрибуты защиты

DWORD dwCreationDisposition, // создание или открытие файла

DWORD dwFlagsAndAttributes, // флаги и атрибуты

HANDLE hTemplateFile // файл атрибутов

);

В случае успешного завершения функция возвращает дескриптор созданного

или открытого файла, а в случае неудачи — значение invalid_handle_value.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]