Задание. Создать учетную запись пользователя. Это можно сделать, используя «Панель управления», «Учетные записи», либо используя командную строку: в меню «Пуск» выбрать «Выполнить», «cmd» (или запустить far)

Вид материалаЛабораторная работа

Содержание


Лабораторная работа 1
Лабораторная работа 2
Ресурсы. В меню Действие
Чтобы предоставить доступ к диску или папке в сети
Открыть общий доступ к этой папке
Другие места
Лабораторная работа 3
ARP - позволяет модифицировать таблицу протокола разрешения адресов. IPCONFIG
TRACERT - перечисляет количество переходов (изменений маршрута) до указанного устройства. PATHPING
IP-пакетов до адресов, заданных преподавателем, с помощью команд ping
Netstat [
Windows использует для именования сетевых объектов соглашение UNC
UNC-имен, выводящей начало файла и изменяющей его содержимое по вводу с клавиатуры: var f
Eof, принимающая значение “истина”, если достигнут конец файла, и “ложь” в противном случае. Синтаксис для нетипизированных файл
Лабораторная работа 7
Лабораторная работа 8
Подобный материал:

министерство образования и науки

российской федерации

федеральное агентство по образованию

Федеральное государственное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет имени И.Н.Ульянова»


П.В.


Сетевые операционные системы


Лабораторный практикум


Чебоксары 2009

УДК 004.451 Составитель: А.П. Димитриев




Д55 Сетевые операционные системы: Лабораторный практикум / А. П. Димитриев; Чуваш. ун-т. Чебоксары, 2009. 12 с.


Составлены в соответствии с государственным образовательным стандартом высшего профессионального образования направления подготовки дипломированного специалиста 230100- Информатика и вычислительная техника специальности 230102 - Автоматизированные системы обработки информации и управления, утвержденным 27.03.2000 (регистрационный номер 224 тех/дс) и веденным с 1 сентября 2000.

Содержат варианты заданий для лабораторных работ. Рассматривается работа в Windows и Linux.

Для студентов III (по сокращенной форме) и IV курсов очного и заочного обучения специальности 230102 – Автоматизированные системы обработки информации и управления.


Утверждено Методическим советом университета

Отв. редактор: канд. физ.-мат. наук доцент Л.В. Желтова


© Димитриев А.П., 2009

ЛАБОРАТОРНАЯ РАБОТА 1

Профили пользователей

Задание. Создать учетную запись пользователя.

Это можно сделать, используя «Панель управления», «Учетные записи», либо используя командную строку:

- в меню «Пуск» выбрать «Выполнить», «cmd» (или запустить FAR);

- ввести команду «net user stud1 123 /add» (здесь имя пользователя stud1, пароль 123).

Управлять профилем данного пользователя (в панели управления): создать пароль, изменить рисунок, создать и удалить временные файлы Интернета (в папке или программой Internet Explorer).

Чтобы создать временные файлы Интернета, откройте web-страницу локально или в Интернете (имеющую расширение htm, html). Чтобы их удалить, в программе Internet Explorer выберите «Сервис», «Свойства обозревателя», «Удалить файлы» (они могут занимать много места на диске). Либо перейдите в папку C:\Documents and settings\stud1\Local Settings\Temporary Internet Files, и удалите файлы, используя клавишу del. Здесь stud1 – имя пользователя, откуда удаляются файлы, операционная система Windows XP установлена на диске С. Если данная папка не видна, установите переключатель «показывать скрытые файлы» и флажок «показывать защищенные системные файлы» во вкладке «дополнительно» свойств обозревателя (папки).

Увидеть недавнюю историю работы (папка History).

Для этого откройте документ Microsoft Word, закройте. Перейдите в папку C:\Documents and settings\stud1\Local Settings\History. Выберите день истории «Сегодня», там будет название того документа, который открывали.

Установить аудит успехов входа в систему.

Для этого войдите в окно «Администрирование», «Локальная политика безопасности», «Политика аудита». Или введите в командной строке secpol.msc.

При первой установке Windows XP Professional все категории аудита выключены. Для своего варианта установить также политику аудита (отказы):

1. Аудит событий входа в систему

2. Аудит управления учетными записями

3. Аудит доступа к службе каталогов

4. Аудит входа в систему

5. Аудит доступа к объектам

6. Аудит изменения политики

7. Аудит использования привилегий

8. Аудит отслеживания процессов

9. Аудит системных событий

Выполнить действие, приводящее к событию по варианту. Перезагрузиться и войти в систему, прочесть об успешном входе в журнале событий и об отказе по варианту в записях аудита безопасности.

Прочесть можно в окне «Просмотр событий», выход на него через «Администрирование». Или введите в командной строке eventvwr.msc.

Для предотвращения переполнения журнала стереть все события.

Для этого нажимать правую кнопку мыши и убрать все установленные флажки аудита.

Удалить учетную запись пользователя.

Удаление аналогично созданию, но вместо add – delete и пароль не указывается.

Примечания. Нужны права администратора. Для создания временных файлов Интернета открывайте web-страницы с помощью Internet Explorer.


ЛАБОРАТОРНАЯ РАБОТА 2

Администрирование сети

1) Открыть общий доступ к папке.

Чтобы предоставить доступ к папке или диску для совместной работы

С помощью компонента «Общие папки»

Откройте узел «Управление компьютером (локальным)». В дереве консоли щелкните узел Ресурсы. В меню Действие выберите команду Новый общий файловый ресурс. Следуйте инструкциям, выводящимся в окне Создание общей папки. Выберите папку или диск, введите имя и описание нового общего ресурса и установите разрешения. Введя эти сведения, нажмите кнопку Готово.

Примечания. Чтобы открыть оснастку «Управление компьютером», нажмите кнопку Пуск, затем выберите команды Настройка и Панель управления. Щелкните категорию Производительность и быстродействие, щелкните значок Администрирование, затем дважды щелкните значок Управление компьютером. Пользоваться компонентом «Общие папки» могут только члены группы «Администраторы» или «Опытные пользователи».

С помощью проводника Windows

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

При наличии подключения к домену выполните следующие действия. Правой кнопкой мыши щелкните общую папку или диск, затем выберите команду Общий доступ и безопасность. Нажмите кнопку Открыть общий доступ к этой папке. Установите требуемые параметры и нажмите кнопку OK.

При входе на домен или при работе под управлением Windows XP Home Edition выполните следующие действия. Правой кнопкой мыши щелкните общую папку или диск, затем выберите команду Свойства. На вкладке Доступ установите переключатель Открыть общий доступ к этой папке. Установите требуемые параметры и нажмите OK.

Чтобы предоставить доступ к диску или папке в сети

Откройте проводник и найдите диск или папку, которые следует открыть для совместного доступа. Щелкните диск или папку правой кнопкой мыши и выберите команду Общий доступ и безопасность. Если требуется общий доступ к диску, на вкладке Доступ щелкните ссылку. Если требуется общий доступ к папке, перейдите к следующему шагу. Выполните одно из следующих действий.

Если флажок Открыть общий доступ к этой папке доступен, установите его. Если невозможно установить флажок Открыть общий доступ к этой папке, данный компьютер не подключен к сети. Для установки домашней или небольшой офисной сети щелкните ссылку Мастер настройки сети и, следуя указаниям мастера, установите режим совместного использования файлов. После включения совместного доступа повторите данную процедуру сначала.

Примечания. При открытии общего доступа к диску или папке их содержимое может быть прочитано любым пользователем. Чтобы удалить из сети диск или папку, перейдите на вкладку Общий доступ, выполнив указанные выше действия 1 и 2. На вкладке Общий доступ выберите Сетевой совместный доступ и безопасность и снимите флажок Открыть общий доступ к этой папке. Чтобы разрешить полный доступ к содержимому диска или папки, перейдите на вкладку Общий доступ, выполнив указанные выше действия 1 и 2. На вкладке Общий доступ выберите Сетевой совместный доступ и безопасность и установите флажок Разрешить изменение файлов по сети. Чтобы изменить имя папки в сети, введите новое имя папки в текстовом поле Общая папка. При этом имя папки на локальном компьютере останется прежним. При входе в систему в качестве гостя (учетная запись гостя предоставляет доступ для любого пользователя, не имеющего учетной записи на данном компьютере) создать общую папку невозможно. Параметр Общий доступ недоступен для системных папок «Documents and Settings», «Program Files» и WINDOWS. Кроме того, нельзя предоставлять общий доступ к папкам из профилей других пользователей.

2) Запустить, остановить службу сообщений (например, из «Администрирование», или введите в командной строке services.msc или control admintools.).

3) определить IP- и MAC-адрес тремя способами: - используя ipconfig /all, - используя «Подключения по локальной сети» - «Поддержка» - «Подробности», - используя команду arp –a (если нет записей, пингуйте другой компьютер (см. ниже).

4) определить имя компьютера и рабочей группы. Это можно сделать из «Мой компьютер», «Просмотр сведений о системе». Если администратор заблокировал эту возможность, введите в командной строке ipconfig /all или выберите «Пуск», «Программы», «Стандартные», «Служебные», «Сведения о системе» для просмотра имени компьютера (имени системы).

5) Увидеть папку с общим доступом из другого компьютера в сети. Для этого откройте «Мой компьютер». В списке Другие места щелкните ссылку Мое сетевое окружение. На экране появятся общие папки сети. Если этого не произойдет, сделайте следующее. Дважды щелкните компьютер, на котором находится общая папка. Дважды щелкните значок папки, которую требуется открыть.


ЛАБОРАТОРНАЯ РАБОТА 3
Средства операционных систем для анализа состояния сети

Цель: Выучить основные, стандартные средства современных операционных систем для исследования состояния сети и сетевых соединений.

Рассмотрим инструменты для решения проблем протокола TCP/IP (команды командной строки).

ARP - позволяет модифицировать таблицу протокола разрешения адресов.

IPCONFIG - показывает текущую TCP/IP конфигурацию и позволяет обновлять эти значения.

NBTSTAT - предоставляет NetBIOS-информацию о TCP/IP-соединениях, перезагружает кэш LMHost и определяет зарегистрированное имя и область действия ID.

PING - посылает эхо-запрос на указанное устройство.

TRACERT - перечисляет количество переходов (изменений маршрута) до указанного устройства.

PATHPING - показывает степень потери информационных пакетов на любом маршрутизаторе или ссылке.

Задание: Выполнить анализ прохождения IP-пакетов до адресов, заданных преподавателем, с помощью команд ping, tracert, netstat. Если имеется операционная система Linux, команды ping и netstat выполнять также и в ней, а также выполнить ping6. Выполнить команды nbtstat и pathping.

Для ввода команд в меню Windows XP «Пуск» выбрать «Выполнить», «cmd» (или запустить FAR); в Linux запустить терминал.

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

Формат команды : ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS] [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]] [-w таймаут] списокРассылки

Команду выполнять со следующими параметрами:

-t Отправка пакетов на указанный узел до команды прерывания.
Для вывода статистики и продолжения нажмите (Ctrl)+(Break), для прекращения - (Ctrl)+(C).

-a Определение адресов по именам узлов.

-n число Число отправляемых запросов.

-l размер Размер буфера отправки.

-f Установка флага, запрещающего фрагментацию пакета.

-i TTL Задание срока жизни пакета (поле "Time To Live").

-r число Запись маршрута для указанного числа переходов.

-s число Штамп времени для указанного числа переходов.

-w таймаут Таймаут каждого ответа в миллисекундах.

Пример выполнения команды ping:

ping -n 10 -l 256 -w 5000 www.rambler.ru

Команда tracert позволяет определить последовательность шлюзов, через которую проходит IP-пакет на пути до пункта своего назначения. Возвращаемой информацией команды является список машин, начиная с первого шлюза и заканчивая пунктом назначения. Формат команды :

tracert [-d] [-h максЧисло] [-j списокУзлов] [-w интервал] имя

Команду выполнять со следующими параметрами:

-d Без разрешения в имена узлов.

-h максЧисло Максимальное число прыжков при поиске узла.
-w интервал Интервал ожидания каждого ответа в миллисекундах.

Пример выполнения команды tracert:

tracert -w 5000 www.rambler.ru

Еще одним средством изучения состояния сети является команда netstat. Она пердназначена для отображения статистики протокола и текущего сетевого подключения TCP/IP. Формат команды : NETSTAT [-a] [-b] [-e] [-n] [-o] [-p протокол] [-r] [-s] [-v] [интервал]

Команду выполнять со следующими параметрами:

-a Отображение всех подключений и ожидающих портов.
(Подключения со стороны сервера обычно не отображаются).
-b Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках [], сверху - компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.

-o Отображение кода (ID) процесса каждого подключения.

-p протокол Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Используется вместе с параметром -s для отображения статистики по протоколам. Допустимые значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6

-s Отображение статистических данных по протоколам. По умолчанию данные отображаются для IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводящихся данных.

-v При использовании с параметром -b, отображает последовательность компонентов, участвующих в создании подключения, или ожидающий порт для всех исполняемых файлов.

-e Отображение статистики Ethernet. Этот ключ может
применяться вместе с ключом -s.

-n Отображение адресов и номеров портов в числовом формате.
-r Отображение содержимого таблицы маршрутов.

интервал Повторный вывод статистических данных через указанный интервал в секундах. Для прекращения вывода данных нажмите клавиши CTRL+C. Если параметр не задан, сведения о текущей конфигурации выводятся один раз.

Пример выполнения команды netstat :

netstat -e


Лабораторная работа 4

Прочие команды для сети (Net)

В Windows и Linux имеются команды командной строки, записываемые с командой Net.

Для ввода команд в меню Windows XP «Пуск» выбрать «Выполнить», «cmd» (или запустить FAR); в Linux запустить терминал.

Варианты для Windows:

1) net accounts, net computer, net config, net continue;

2) net file, net group, net help, net helpmsg;

3) net localgroup, net name, net pause, net print;

4) net send, net session, net share, net start;

5) net statistics, net stop, net time, net use;

6) net user, net view, net accounts, net computer.

Варианты для Linux:

1) net time, net lookup, net user, net group;

2) netgroupman, net join, net cache, net netlocalsid [NAME];

3) net setlocalsid SID, net changesecretpw, net ads , net rap ;

4) net rpc , net help, net time, net lookup.

Задание. Выполнить (в Windows без ошибок и в Linux) по четыре эти команды с разными параметрами и без них, например:

Net use z: //K206-08/ДиКТ; Net use.

Для справки набирайте net help <команда> в командной строке. Вариант вычисляется как остаток от деления номера студента по списку на число вариантов (6 или 4).



Лабораторная работа 5

Обмен текстовыми сообщениями между двумя компьютерами.

Цель: организация совместной работы программ в сети.

Если для написания программы используется язык С++ Builder, то с помощью компонентов TNMMsg и TNMMsgServ вкладки FastNet палитры компонентов программа может отправить и получить текстовое сообщение. А если Delphi, для этого можно использовать компонент TIDTCPServer (вкладка Indy Servers палитры компонентов) и TIDTCPClient (вкладка Indy Clients), только будет использован протокол TCP.

При использовании С++ Builder

Отправитель сообщения реализуется с помощью компонента TNMMsg. Компонент имеет свойство, которое идентифицирует отправителя сообщения:

Property FromName: String;

Имеется также собственный метод, с помощью которого отправитель сообщения пересылает текстовое сообщение адресату:

Function PostIt(const sMsg: string): String;

Перед посылкой сообщения должен быть указан IP-адрес получателя сообщения и порт (по умолчанию – 6711). Если сообщение успешно передано удаленному адресату, возникает следующее событие:

Property OnMessageSent: TNotifyEvent;

При использовании Delphi

Отправитель - компонент IdUDPClient1. У него имеется метод, с помощью которого отправитель сообщения пересылает текстовое сообщение адресату:

IdUDPClient1.Send(s: String);

Поместите компонент (вкладка Indy Clients), назовите его IDCli и настройте соединение с сервером: в свойство Host поместите IP-адрес машины-сервера (если клиент располагается на машине сервера, это свойство должно содержать 127.0.0.1), а в Port – 6712. Активизируйте клиента (Active = True).

Характерной особенностью компонентов Indy является то, что серверы с клиентами обмениваются данными в синхронном режиме, т.е. до завершения очередной операции обмена соответствующие оконные интерфейсные элементы (кнопки, списки и т.п.) будут недоступны. Если обмен длится несколько мгновений, это не имеет существенного значения, но если операция растягивается на десятки минут, клиенты и серверы кажутся зависшими. Для периодического прерывания обмена и вызова метода Application/ProcessMessages предназначениы специальные компоненты TIDAntiFreez. Все, что нужно для подключения компонента к работе, - это просто поместить его на форму. Хотя в нашем примере обмен данными занимает доли секунды, тем не менее, не будем отступать от рекомендуемых приемов: поместите на форму компонент TIDAntiFreez (вкладка Indy Misc).

В обеих системах программирования

Используется компонент Таймер. В его задачу входит выполнять действие (в данном случае посылать сообщение) через определенные интервалы времени. У него есть событие OnTimer, которое определяет, что должна делать программа, когда истечет заданный интервал.

Самое важное свойство таймера - Interval (Интервал). Оно указывает, когда (через сколько времени) в следующий раз таймер должен сработать. Промежуток времени задается в миллисекундах.

1. Поместите на форму компонент Таймер. Он находится на панели компонентов System (Системные). Таймер можно расположить где угодно на форме. Этот объект отображается на форме в виде значка фиксированного размера. В окне работающей программы его не видно.

2. На форму поместите кнопку - компонент Button. Пример обработчика события щелчка на кнопке (предварительно нужно создать текстовое поле Edit1; для корректной работы в поле должны быть не менее 3 символов):

При использовании С++ Builder

void __fastcall TForm1::Button1Click(TObject *Sender)

{ AnsiString s;char c=random(30)+65;

s=Edit1->Text; s[1]=c;c=random(30)+65;

s[2]=c;Edit1->Text=s;

NMMsg1->PostIt(s); }

При использовании Delphi

var s: string; begin

s:=Edit1.Text+chr(Random(30)+65);

IdUDPClient1.Send(s);

3. Давайте сделаем так, чтобы через каждые пол-секунды посылалось сообщение: свойство Interval сделайте равным 500.

4. Щелкните по значку Timer, чтобы установить свойство - обработчик события (выбрать процедуру Button1Click).

При использовании С++ Builder

Для приема сообщений (на другом компьютере) используется компонент TNMMsgServ. Он находится в режиме постоянного просушивания порта 6711 и получает переданное ему сообщение с помощью обработчика события OnMSG:

void __fastcall TForm1::nmmsgserv1msg(TComponent *Sender,

const AnsiString sFrom, const AnsiString sMsg)

{ Edit1->Text=sFrom+sMsg;

// исходное сообщение

Edit2->Text=F(sMsg,1);

// текстовое поле для вывода первого результата функции F

Edit3->Text=F(sMsg,2);

// текстовое поле для вывода 2 результата функции F и т.д. };

Если «испортился» порт 6711, можно использовать 6712 (на обоих компьютерах), для работы отлаженной программы. Не следует на клиенте писать для обработчика события OnMessageSent процедуру Button1Click, так как это будет «портить» порт. На сервере пишется обработчик для OnMSG.

При использовании Delphi

Создадим сервер: начните новый проект и поместите на пустую форму компонент IdUDPServer1 (вкладка Indy Servers палитры компонентов). Дайте ему имя IDServ и настройте его на работу с локальным сервером: щелкните на кнопке свойства Bindings и в появившемся окне в списке IP Address выберите адрес локальной машины, а в поле списка Port введите значение 8090 (предварительно полезно раскрыть этот список и убедиться, что порт не задействован другими службами вашего компьютера). После этого щелкните на кнопке Add и закройте окно щелчком на кнопке ОК. Поместите на форму два компонента TEdit и компонент TIDAntiFreez. Активизируйте сервер (Active = True) и напишите для события OnUDPRead такой обработчик:

Var S: string; Begin

Edit2.Text:=IdUDPServer1.ReceiveString; // Получаем от клиента строку

Edit1.Text:= F(s,1); Edit2.Text:= F(s,2);

End;

В строке Uses добавьте IDSocketHandle.

Событие OnUDPRead возникает в момент установления связи с клиентом. Затем выполняется обработка строки.

В обеих системах программирования

Перед запуском клиента запустите сервер. Функция F разрабатывается по вариантам.

Задание. Написать подобные программы, запустить на двух компьютерах, соединенных сетью, отладить. Выполнить задания по вариантам. Вариант вычисляется как остаток от деления номера студента по списку на число 5.

Варианты заданий.

1) Выделение всех чисел из текстового сообщения и вывод в отдельные текстовые поля. Пример: «1 5 15 3 12»

2) Выделение слов из текстового сообщения, которые могут располагаться в разных позициях строки для разных сообщений и вывод в отдельные текстовые поля. Пример – это предложение.

3) Выделение двузначного числа после заданного текста в сообщении, которое может располагаться в разных местах строки для разных сообщений, например «10» из «В &1 @А10F Z».

4) Вычисление суммы количества пробелов, запятых, точек, скобок, кавычек, двоеточий, точек с запятыми в сообщении.

5) Выделение из сообщения заголовка, собственно информации и контрольной суммы, ее проверка и вывод в текстовые поля.


Лабораторная работа 61

Файловые операции в сети

Цель: работа с UNC-именами, семантикой Unix и файловым сервером.

Windows использует для именования сетевых объектов соглашение UNC (Universal Naming Convention), полностью описывающее местонахождение объекта в системе. UNC-имена задают имя файла в следующем виде:

\\node\share\path\file.nam, где

Node – имя сетевого узла

Share – имя разделяемого ресурса на этом узле (это может быть не только разделяемый каталог, но и принтер),

path\file.nam – путь к файлу от разделяемого каталога.

UNC-имена поддерживаются большинством файловых операций Windows. При использовании в программе таких имен операции с файлом ничем не отличаются от операций с локальным файлом.

Пример программы на Паскале с использованием UNC-имен, выводящей начало файла и изменяющей его содержимое по вводу с клавиатуры:

var f:file;i:integer; buf:array[1..256]of char;s:string;begin

assign(f,'\\K206-07\123\mszi1.pas');{назначить символьное имя}

reset(f);{открыть файл для чтения и записи}

blockread(f,buf,1); {чтение блока данных}

for i:=1 to 80 do write(buf[i]);{вывод на экран}

writeln('new string:');

read(s);{ввод с клавиатуры}

if length(s)>0 then {если строка ненулевой длины}

for i:=1 to length(s) do buf[i]:=s[i];{формирование буфера}

seek(f,0);{позиционирование файла на начало}

blockwrite(f,buf,1); {запись блока данных}

close(f); {закрытие файла} end.

На языке Delphi для некоторых названий операций добавляется строка «file», например, AssignFile, ReadFile и т.д. Вместо Read, Write можно использовать свойство компонента Edit1.Text. Синтаксис некоторых файловых операций:

procedure AssignFile(var F; FileName: string); - назначает имя файловой переменной. Для выбора пути текущего каталога используется ExtractFilePath(ParamStr(0)).

procedure Reset(var F [: File; RecSize: Word ] ); - открывает файл для чтения. Указатель позиционируется на начало файла.

procedure Read(F , V1 [, V2,...,Vn ] ); - читает из файла в переменные памяти, перемещая указатель.

procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] ); - то же для текстового файла.

procedure Write(F, V1,...,Vn); - запись в файл из переменных памяти, перемещая указатель.

procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] ); - то же для текстового файла.

procedure Seek(var F; N: Longint); - установка указателя.

Здесь F – переменная файлового типа (или файл-текст), FileName - имя файла, V1,...,Vn (P1,..., Pn)– список переменных для чтения/записи, RecSize - размер записи, N – номер компонента.

Задание. Используя Delphi (если его нет, Turbo Pascal или C++ Builder), разработать программу, выполняющую действия с файлами в сети по варианту. Программу запустите на двух компьютерах, чтобы обе обращались к одному и тому же файлу в сети, для проверки работы семантики разделения файлов Unix. Это означает, что содержимое файла будет определяться последовательностью работы двух запущенных программ. Измерить время выполнения операции по варианту для файла на другом компьютере и для локального файла (без UNC-имени). Для этого используется функция GetTime. Вариант вычисляется как остаток от деления номера студента по списку на число 6.

Варианты заданий.

1. Чтение блоков данных до конца файла и дозапись во второй сетевой файл контрольной суммы каждого блока.

2. Чтение блока данных и замена всех русских букв на английские аналоги (если есть), а со второго компьютера – обратно на русские аналоги. В исходном файле и те, и другие.

3. Чтение блока данных и простое подстановочное шифрование всех букв кириллицы.

4. Создание файла с определенным именем и случайным содержимым (символы от A до Z) размером 256 байт. На втором компьютере тот же файл создается, содержащий символы от А до Я. Используется создающая файл функция RewriteFile. Существующий файл с таким именем уничтожается Синтаксис (используется переменная файлового типа и размер записи):

procedure Rewrite(var F: File [; Recsize: Word ] ).

5. Открытие файла и добавление к его содержимому случайного содержимого (символы от A до Z) размером 256 байт. На втором компьютере в тот же файл добавляются символы от А до Я. Используется открывающая файл для добавления в конец функция Append. Синтаксис (используется переменная типа файл-текст):

procedure Append(var F: Text).

6. Чтение блока файла и двусторонний обмен с блоком доугого файла.

Во всех вариантах для проверки, что файл ненулевой длины, используется функция Eof, принимающая значение “истина”, если достигнут конец файла, и “ложь” в противном случае. Синтаксис для нетипизированных файлов:

function Eof(var F): Boolean.

Для текстовых файлов:

function Eof [ (var F: Text) ]: Boolean.


ЛАБОРАТОРНАЯ РАБОТА 7

Вызов удаленных процедур (RPC)

Цель RPC – использовать вычислительные мощности другого компьютера.

Доработайте программу из лабораторной работы № 5 так, чтобы клиент вызывал процедуру, выполняющуюся на компьютере сервера. Для этого клиент формирует текстовое сообщение, содержащее два параметра процедуры, сервер принимает его и выполняет процедуру с данными параметрами, затем возвращает клиенту результат. Например, процедура может возвращать площадь прямоугольника как произведение длины и ширины.

Алгоритм работы:
  1. Запуск сервера на прослушивание порта.
  2. Запуск клиента.
  3. Задание пользователем длины, ширины и IP-адреса сервера.
  4. Формирование клиентом текстового сообщения, содержащего два числа, и отправка его серверу.
  5. Ожидание клиентом ответа сервера с таймаутом. Т.е. по истечении некоторого промежутка времени клиент выходит из ожидания с сообщением о превышении интервала времени. Это можно сделать, используя таймер (Свойство Enabled) и showmessage(‘Time out’);.
  6. Прием сервером сообщения и выделение из него двух чисел.
  7. Вычисление сервером произведения двух чисел.
  8. Формирование сервером текстового сообщения, содержащего ответ, и отправка его клиенту.
  9. Получение ответа клиентом и вывод его в текстовое поле.


ЛАБОРАТОРНАЯ РАБОТА 8

Работа с базой данных в архитектуре клиент-сервер

Цель архитектуры клиент-сервер – использовать дисковое пространство другого компьютера без излишней загрузки сети.

Задание. Используя Delphi (или C++ Builder), разработать программу (клиентскую и серверную части), выполняющую действия с базой данных.

Клиент отправляет запрос на языке SQL серверу, сервер обрабатывает запрос, формируя файл результата. Этот файл затем получает клиент (по протоколу TCP) и выводит содержимое в компонент TDBGrid для просмотра пользователем.

Описание работы с базами данных и SQL в Delphi приводится лабораторной работе № 4 по базам данных [7]. Алгоритм работы:
  1. На компьютере сервера подготовить базу данных в виде файла формата DBF или DB и открыть папку с запускаемой программой для чтения по сети.
  2. Запуск сервера на прослушивание порта.
  3. Запуск клиента.
  4. Задание пользователем строки, искомой в базе данных, и IP-адреса сервера.
  5. Формирование клиентом текстового сообщения, содержащего запрос на языке SQL, и отправка его серверу.
  6. Ожидание клиентом ответа сервера с таймаутом.
  7. Прием сервером сообщения и выделение из него SQL-запроса.
  8. Обработка сервером SQL-запроса (кроме закрытия). При этом автоматически создается файл, содержащий таблицу с результатом, в папке с запускаемой программой.
  9. Формирование сервером текстового сообщения, содержащего имя файла результата (как разрешение на его чтение), и отправка его клиенту.
  10. Ожидание сервером разрешения клиента на закрытие SQL-запроса с таймаутом.
  11. Получение ответа клиентом и выделение из него имени файла.
  12. Копирование данного файла на компьютер клиента (автоматически средствами Delphi).

Пример копирования:

procedure TForm1.Button2Click(Sender: TObject);

var fn:string;f,f1:file;i,s:longint;

b:array[1..128]of byte;

begin

if opendialog1.Execute then begin

fn:= opendialog1.filename;

showmessage(fn);assignfile(f,fn);assignfile(f1,'001.txt');

reset(f);rewrite(f1); s:= filesize(f);

showmessage(inttostr(s));

for i:=1 to s do begin

blockread(f,b,1);blockwrite(f1,b,1);

end;

reset(f,1); reset(f1,1);

seek(f,128*s); seek(f1,128*s);

while not eof(f) do begin

blockread(f,b[1],1);blockwrite(f1,b[1],1);

end;

closefile(f);closefile(f1);

end;

end;
  1. Отправка серверу сообщения, что можно закрывать SQL-запрос.
  2. Закрытие сервером SQL-запроса (при этом файл удаляется).
  3. Установка клиентом параметра «Имя таблицы» компонента TTable (на который ссылается TDataSource и затем TDBGrid) в соответствии с именем копии файла, а свойства Active - True. Содержимое таблицы будет отображено.


Пример текста процедуры на языке C++ Builder, работающей с SQL-запросом.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

DM2->Query1->Close();char c=34;

DM2->Query1->SQL->Clear();

AnsiString s = "SELECT * FROM ";

s=s+c+":Words:t.dbf"+c;

// ShowMessage(s);

DM2->Query1->SQL->Add(s);

DM2->Query1->SQL->Add("WHERE");

s="(mar LIKE ";

s=s+c+ Edit1->Text +c+")";

// ShowMessage(s);

DM2->Query1->SQL->Add(s);

DM2->Query1->Open();

int ks=DM2->Query1->RecordCount;

if (ks>0) {

Button1->Caption=DM2->Query1->Fields->FieldByName("opis")->Text ;}// ->Count;}


}

//---------------------------------------------------------------------------

void __fastcall TForm1::Createform(TObject *Sender)

{

Session->ConfigMode = cmSession;

char t=92;

AnsiString s1="Words", s2="D";

s2=s2+":"+ t;

Session->AddStandardAlias(s1, s2, "PARADOX");

}

Для его работы на форме должны быть компоненты Query1, Edit1, Button1 и создан модуль данных. На диске D должен быть файл базы данных t.dbf, содержащий данные в полях mar и opis.


Список рекомендуемой литературы

1. Желтов П.В., Димитриев А.П. Операционные системы: Метод. указания к лабораторным работам. Чебоксары, Чуваш. ун-т, 2007. 12 с.

2. "Эверест" - Центр Практической Информатики. Вводный курс "Delphi для чайников". // t.ru/projectgame/le­arn/les­son15/lesson15.htm

3. Попов А.В. Командная строка и сценарии Windows //
www.intuit.ru/depart­ment/os/compromtwin

4. Свойства сетевого соединения (Win2000/XP), настройки, проверка работоспособности // radom.ru/engine/Net/Svo­jjstvaSetevogoSoedinenija

5. Программирование на языках высокого уровня: С: Конспект лекций . Чебоксары: Изд-во Чуваш. ун-та, 2007 // П.В. Желтов, Л.В. Желтова, С.С. Покалев., А.П. Димитриев. 68 с.

6. Фаронов В. В. Программирование баз данных в Delphi 7: Питер / Фаронов В. В. - СПб.: Питер, 2006. - 458с.: ил. - (Учебный курс).

7. Димитриев А.П. Базы данных: методические указания к лабораторным работам. Чебоксары. URL: ссылка скрыта [Дата обращения 17.02.2011].


Содержание

Лабораторная работа 1. Профили пользователей..…...........

3

Лабораторная работа 2. Администрирование сети..….........

4

Лабораторная работа 3. Средства операционных систем для анализа состояния сети.……………………….……........


6

Лабораторная работа 4. Прочие команды для сети (Net) ....

9

Лабораторная работа 5. Обмен текстовыми сообщениями между двумя компьютерами.……………………….……......


10

Лабораторная работа 6. Файловые операции в сети…….....

13

Лабораторная работа 7. Вызов удаленных процедур (RPC)

16

Лабораторная работа 8. Работа с базой данных в архитектуре клиент-сервер……………………………………………


17

Список рекомендуемой литературы………………………...

19



сетевые Операционные Системы


Лабораторный практикум


Редактор О.М. Садовникова

ЛР № 06547 от 28.01.2002


Подписано в печать 25.01.2009. Формат 6084 / 16. Бумага газетная. Печать оперативная. Гарнитура Times New Roman. Усл.печ. л. 0,69. Уч.-изд.л. 0,64. Тираж 50 экз. Заказ № 675.


Чувашский государственный университет

Типография университета

428015 Чебоксары, Московский просп., 15

1 Для заочников это контрольная работа