Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИЧЕСКАЯ РАБОТА Компьютерные сети_2_1.doc
Скачиваний:
4
Добавлен:
16.11.2018
Размер:
142.85 Кб
Скачать

ПРАКТИЧЕСКАЯ РАБОТА № 1.

РАБОТА С УДАЛЕННЫМИ ФАЙЛАМИ С ПОМОЩЬЮ

УНИВЕРСАЛЬНЫХ ПРАВИЛ ИМЕНОВАНИЯ

Цель работы: Освоение методов передачи файлов по сети с использованием универсальных правил именования сетевых объектов.

1.1. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ

Microsoft Windows позволяет приложениям обмениваться информацией по сети с помощью встроенных служб файловой системы. Для идентификации файлов в сети ОС Windows использует универсальные правила именования (Universal Naming Convention, UNC).

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

  • структура имен UNC;

  • процедуры и функции ОС Windows для работы с файлами;

  • процедуры и функции Delphi для работы с файлами.

      1. Имена unc

Имена UNC – стандартный способ доступа к сетевым файлам и устройствам. Имена UNC имеют вид: \\сервер\ресурс\путь,

где:

\\сервер, начинается с двух обратных косых черт и имени удаленного сервера, на котором находится нужный файл.

\ресурс, это имя общего ресурса, то есть папки в файловой системе, к которой открыт общий доступ пользователям сети.

\путь, обозначает путь к нужному файлу.

Например, на сервере с именем Myserver находится папка D:\Myfiles\CoolMusic, предоставленная для общего доступа под сетевым именем Myshare, а в этой папке - файл Sample.mp3. Тогда для доступа к этому файлу с другой машины надо указать следующее UNC- имя:

\\ Myserver\ Myshare\ Sample.mp3

Обращение к файлам по сети с использованием UNC-имен скрывает от приложения детали формирования сетевого соединения, так что система легко находит нужные файлы даже при подключении по модему. Все детали сетевого соединения организуются перенаправителем. Перенаправитель – это компонент сетевой ОС, который выполняет следующие функции:

  • прием и обработка запросов ввода-вывода;

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

1.1.2. Процедуры и функции win32 для работы с файлами

1. Создание или открытие файла

Для создания или открытия файла в ОС Windows используется функция CreateFile.

Функция CreatFile имеет следующий синтаксис:

function CreateFile (

pFileName: PChar;

dwDesiredAccess,

dwShareMode: DWORD;

lpSecurityAttributes: PSecurityAttributes;

dwCreationDisposition, dwFlagsAndAttributes: DWORD;

hTemplateFile: THandle

): THandle; stdcall;

где

pFileName – определяет имя создаваемого или открываемого файла в формате UNC.

dwDesiredAccess - указывает способ доступа к содержимому файла. Возможные значения параметра dwDesiredAccess приведены в табл. 1.1.

Таблица 1.1

Возможные значения параметра dwDesiredAccess

Значения параметра fdwAccess

Описание

0

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

GENERIC_READ

Чтение файла разрешено

GENERIC_WRITE

Запись в файл разрешена

GENERIC_READ or

GENERIC_WRITE

Разрешено чтение файла и запись в файл

dwShareMode - указывает тип совместного доступа к данному файлу. Возможные значения параметра dwShareMode приведены в табл. 1.2.

Таблица 1.2

Возможные значения параметра dwShareMode

Значение параметра

dwShareMode

Описание

0

Запрещены любые попытки повторного открытия файла

FILE_SHARE_READ

Посторонний процесс может открыть данный файл только для чтения

FILE_SHARE_WRITE

Посторонний процесс может открыть данный файл только для записи

FILE_SHARE_READ or

FILE_SHARE_WRITE

Посторонний процесс может открыть данный файл без ограничений

lpSecurityAttributes – указывает на структуру SECURITY_ATTRIBUTES, которая содержит информацию о защите объекта ядра "файл".Если защиты не нужно в этот параметр заносится nil.

dwCreationDisposition – указывает флаги для тонкой настройки функции CreateFile. Возможные значения параметра dwCreationDisposition приведены в таблице 1.3.

dwFlagsAndAttributes – указывает атрибуты создаваемого файла. Если функция открывает уже существующий файл, то информация об атрибутах игнорируется. Возможные значения параметра dwFlagsAndAttributes приведены в таблице 1.4. Перечисленные в таблице 1.4 флаги можно объединять с помощью функции or.

hTemplateFile – либо дескриптор открытого файла, либо равен 0. В первом случае функция игнорирует параметр dwFlagsAndAttributes и использует флаги и атрибуты, связанные с файлом, который определяется параметром hTemplateFile. Чтобы такая схема сработала, файл, заданный параметром hTemplateFile, нужно открыть с флагом GENERIC_READ. Если функция CreateFile открывает существующий файл, этот параметр игнорируется.

Таблица 1.3

Возможные значения параметра dwCreationDisposition

Значение параметра

dwCreationDisposition

Описание

CREATE_NEW

Функция создает новый файл, но сообщает об ошибке, если файл с таким именем уже существует

CREATE_ALWAYS

Функция создает файл независимо от того, существует ли уже файл с таким именем. Если файл существует, то замещается новым

OPEN_EXISTING

Функция открывает существующий файл и сообщает об ошибке, если файла с таким именем нет.

OPEN_ALWAYS

Функция открывает файл, если он существует, и создает новый, если такого нет

TRUNCATE_EXISTING

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

Таблица 1.4

Возможные значения параметра dwFlagsAndAttributes

Значение параметра

fdwAttrsAndFlags

Описание

FILE_ATTRIBUTE_ARCHIVE

Файл является архивным. Данный атрибут используют для того, чтобы пометить файлы для резервного копирования. При создании нового файла атрибут FILE_ATTRIBUTE_ARCHIVE устанавливается автоматически

FILE_ATTRIBUTE_HIDDEN

Файл является скрытым

FILE_ATTRIBUTE_NORMAL

У файла нет атрибутов. Данный атрибут допустим только, если используется один.

FILE_ATTRIBUTE_READONLY

Файл только для чтения

FILE_ATTRIBUTE_SYSTEM

Файл является частью операционной системы и используется только ею.

При успешном создании или открытии файла, функция CreateProcess возвращает его описатель (дескриптор). В случае ошибки функция CreateProcess возвращает INVALID_HANDLE_VALUE (-1).