Разработка системы обмена файлами между двумя компьютерами, в которых известны IP-адреса

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ

Факультет ПММ

Кафедра Информатики

КУРСОВОЙ ПРОЕКТ

«Разработка системы обмена файлами между двумя компьютерами, в которых известны IP-адреса»

по дисциплине «Операционные системы»

Студент гр. Филатов Е. О.

Руководитель проекта Липанов О. В.

Харьков 2012 г.

Содержание

  • Введение
  • 1. Файловая и сетевая системы ос windows. Модель «Клиент-сервер»
  • 1.1 Файловая система ОС Windows
  • Определение файловой системы
  • Задачи файловой системы
  • Файловые системы Windows
  • 1.2 Сетевая система ОС Windows
  • Понятие «Сеть»
  • Сетевой протокол
  • Структура сетевой ОС
  • 1.3 Модель Клиент-Сервер
  • 2. Функциональные требования и архитектура программы
  • 2.1 Функциональные требования
  • 2.2 Архитектура программы
  • 2.3 Диаграмма классов
  • 2.4 Диаграмма компонентов
  • 2.5 Характеристика вычислительных средств и программного обеспечения
  • 2.6 Описание программы
  • 3. Тестирование программы
  • 4. Инструкция пользователя
  • 4.1 Назначение программы и требования к системе
  • 4.2 Интерфейс программы
  • Выводы
  • Перечень ссылок

Введение

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

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

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

В святи с этим возникает проблема передачи информации через сеть. Каждый разработчик своей системы пытается обеспечить максимальную производительность при минимальном количестве переданной информации.

При роботе с информацией в сети Интернет используются сервера — накопители информации и обработчики различных поступающих данных, которые постоянно работают в режиме Online. Но для этого необходимы системы и программы для передачи информации с клиента на сервер, как администраторские, так и пользовательские.

1. Файловая и сетевая системы ос windows. Модель «Клиент-сервер»

1.1 Файловая система ОС Windows

Определение файловой системы

Файловая система (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации ИТ-оборудования (использующего для многократной записи и хранения информации портативные флеш-карты памяти в портативных электронных устройствах: цифровых фотоаппаратах, мобильных телефонах и т. д) и компьютерной техники. Она определяет формат содержимого и физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов. [1]

Задачи файловой системы

Основные функции любой файловой системы нацелены на решение следующих задач:

? именование файлов;

? программный интерфейс работы с файлами для приложений;

? отображения логической модели файловой системы на физическую организацию хранилища данных;

? организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;

? содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.).

В многопользовательских системах появляется ещё одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение». [1]

Файловые системы Windows

В Windows существуют три файловые системы FAT, FAT32, NTFS. Какую из них выбрать? Вопрос совсем не сложный. Все зависит от Ваших потребностей или потребностей двигаться в русле со временем.

Наиболее важные параметры при выборе файловой системы:

? нужно понять для чего будет использована ФС, будь то сервер или рабочая станция;

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

Файловая система FAT может использоваться с Windows NT/2000, Windows 9x, Windows for Workgroups, MS-DOS и OS/2.

Использование файловой системы FAT является одним из лучшим выбором для томов небольшого размера, и в этом случае накладные расходы минимальны. На томах, размер которых не превышает 500 Мбайт, она работает очень хорошо. Однако на больших томах (1 Гбайт и более) FAT становится крайне неэффективной.

Для томов, размер которых находится в пределах 400−500 Мбайт, FAT является предпочтительным выбором по сравнению с NTFS, поскольку лишена накладных расходов NTFS, связанных с дисковым пространством: при форматировании тома для использования файловой системы NTFS создается целый ряд системных файлов и файл журнала транзакций, которые потребляют некоторый процент дискового пространства (и для небольших томов этот процент значителен).

32-разрядная файловая система FAT32 была введена с выпуском Windows 95 OSR2, и ее поддержка обеспечивается в Windows 98. Она обеспечивает оптимальный доступ к жестким дискам, повышая скорость и производительность всех операций ввода/вывода. FAT32 представляет собой усовершенствованную версию файловой системы FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт. Windows 2000 продолжает поддерживать файловую систему FAT, а также добавляет дополнительную поддержку для FAT32.

Возможности файловой системы FAT32 намного превышают возможности файловой системы FAT16. Так, эта файловая система поддерживает жесткие диски, размер которых может достигать теоретического предела 2 терабайта.

В дополнение к этому, FAT32 уменьшает размер кластера на больших дисках, снижая таким образом объем неиспользуемого пространства. Например, при использовании FAT16 на жестком диске размером 2 Гбайт, размер кластера будет составлять 32 Кбайт. Если этот же диск отформатировать с использованием FAT32, то размер кластера будет составлять только 4 Кбайт, Все утилиты Microsoft, предназначенные для работы с дисками (Formal. FDISK, Defrag и ScanDisk), были переработаны для обеспечения поддержки FAT32. Кроме того, Microsoft проводит большую работу по поддержке ведущих фирм-производителей драйверов устройств и утилит для работы с диском, чтобы помочь и в обеспечении поддержки FAT32 в их продуктах.

Файловая система Windows NT (NTFS) обеспечивает такое сочетание производительности, надежности и эффективности, которое невозможно предоставить с помощью любой из реализаций FAT (как FAT16, так и FAT32). Основными целями разработки NTFS являлись обеспечение скоростного выполнения стандартных операций над файлами (включая чтение, запись, поиск) и предоставления дополнительных возможностей, включая восстановление поврежденной файловой системы на чрезвычайно больших дисках.

NTFS обладает характеристиками защищенности, поддерживая контроль доступа к данным и привилегии владельца, играющие исключительно важную роль в обеспечении целостности жизненно важных конфиденциальных данных. Папки и файлы NTFS могут иметь назначенные им права доступа вне зависимости от того, являются они общими или нет. NTFS? единственная файловая система в Windows NT/2000, которая позволяет назначать права доступа к отдельным файлам. Однако, если файл будет скопирован из раздела или тома NTFS в раздел или на том FAT, все права доступа и другие уникальные атрибуты, присущие NTFS, будут утрачены.

Файловая система NTFS, как и FAT, в качестве фундаментальной единицы дискового пространства использует кластеры. В NTFS размер кластера по умолчанию зависит от размера тома. Если для форматирования тома NTFS используется утилита командной строки FORMAT, то нужный размер кластера можно указать в качестве параметра этой команды. Размеры кластеров по умолчанию приведены в табл.7.3.

Форматирование тома для NTFS приводит к созданию нескольких системных файлов и главной таблицы файлов (Master File Table, MFT). MFT содержит информацию обо всех файлах и папках, имеющихся на томе NTFS. NTFS — это объектно-ориентированная файловая система, которая обрабатывает все файлы как объекты с атрибутами. Практически все объекты, существующие на томе, представляют собой файлы, а все что имеется в файле, представляет собой атрибуты, включая атрибуты данных, атрибуты системы безопасности, атрибуты имени файла. Каждый занятый сектор на томе NTFS принадлежит какому-нибудь файлу. Частью файла являются даже метаданные файловой системы (информация, которая представляет собой описание самой файловой системы).

Из всего вышесказанного сделаем небольшой вывод.

NTFS обеспечивает широкий диапазон разрешений, в отличие от FAT, что дает возможность индивидуальной установки разрешений для конкретных файлов и каталогов. Это позволяет указать, какие пользователи и группы имеют доступ к файлу или папке и указать тип доступа. Встроенные средства восстановления данных; поэтому ситуации, когда пользователь должен запускать на томе NTFS программу восстановления диска, достаточно редки. Даже в случае краха системы NTFS имеет возможность автоматически восстановить непротиворечивость файловой системы, используя журнал транзакций и информацию контрольных точек.

Реализованная в виде В-деревьев структура папок файловой системы NTFS позволяет существенно ускорить доступ к файлам в папках большого объема по сравнению со скоростью доступа к папкам такого же объема на томах FAT.

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

NTFS — наилучший выбор для работы с томами большого объема. При этом следует учесть, что если к системе предъявляются повышенные требования (к числу которых относятся обеспечение безопасности и использование эффективного алгоритма сжатия), то часть из них можно реализовать только с помощью NTFS. Поэтому в ряде случаев нужно использовать NTFS даже на небольших томах. [1,3]

1.2 Сетевая система ОС Windows

Понятие «Сеть»

Все сети Windows представляют собой иерархию сетевых ресурсов. Некоторые из них являются физическими устройствами — диски, принтеры. Другие представляют собой логические контейнеры.

На верхнем уровне находится root-узел. На следующем уровне, в иерархии, расположены сетевые провайдеры. Далее идут домены и рабочие группы, которые содержат отдельные сервера. [2]

Сетевой протокол

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

Объединение глобальных информационных сетей между собой осуществляется через шлюзы (соответствующие компьютерные системы). Шлюз способен принять сообщение из одной сети и передать его в другую сеть или доставить его по указанному адресу. На практике информация передается из одной сети в другую через множество последовательных шлюзов, которые обеспечивают сквозную маршрутизацию сообщений по всей сети.

Набор сетевых протоколов, которые использует Internet (семейство протоколов межсетевого обмена) определяется как TCP/IP (Transmission Control Protocol/Internet Protocol — Протокол управления передачей/протокол Internet). Эти протоколы — по существу машинный язык сети. Базовые протоколы семейства (спецификации) TCP/IP содержат схемы адресации, которые опознают каждый компьютер, подключенный к Internet (для этого используют IP-адрес компьютера), и прикладные программы. [2]

Структура сетевой ОС

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

В сетевой операционной системе отдельной машины можно выделить несколько частей (рисунок 1. 1):

? Средства управления локальными ресурсами компьютера: функции распределения оперативной памяти между процессами, планирования и диспетчеризации процессов, управления процессорами в мультипроцессорных машинах, управления периферийными устройствами и другие функции управления ресурсами локальных ОС.

Рис. 1.1 — Структура сетевой ОС

? Средства предоставления собственных ресурсов и услуг в общее пользование — серверная часть ОС (сервер). Эти средства обеспечивают, например, блокировку файлов и записей, что необходимо для их совместного использования; ведение справочников имен сетевых ресурсов; обработку запросов удаленного доступа к собственной файловой системе и базе данных; управление очередями запросов удаленных пользователей к своим периферийным устройствам.

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

? Коммуникационные средства ОС, с помощью которых происходит обмен сообщениями в сети. Эта часть обеспечивает адресацию и буферизацию сообщений, выбор маршрута передачи сообщения по сети, надежность передачи и т. п., то есть является средством транспортировки сообщений.

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

Рис. 1.2 — Взаимодействие компонентов операционной системы при взаимодействии компьютеров

На рисунке 1.2 показано взаимодействие сетевых компонентов. Здесь компьютер 1 выполняет роль «чистого» клиента, а компьютер 2 — роль «чистого» сервера, соответственно на первой машине отсутствует серверная часть, а на второй — клиентская. На рисунке отдельно показан компонент клиентской части — редиректор. Именно редиректор перехватывает все запросы, поступающие от приложений, и анализирует их. Если выдан запрос к ресурсу данного компьютера, то он переадресовывается соответствующей подсистеме локальной ОС, если же это запрос к удаленному ресурсу, то он переправляется в сеть. При этом клиентская часть преобразует запрос из локальной формы в сетевой формат и передает его транспортной подсистеме, которая отвечает за доставку сообщений указанному серверу. Серверная часть операционной системы компьютера 2 принимает запрос, преобразует его и передает для выполнения своей локальной ОС. После того, как результат получен, сервер обращается к транспортной подсистеме и направляет ответ клиенту, выдавшему запрос. Клиентская часть преобразует результат в соответствующий формат и адресует его тому приложению, которое выдало запрос. [2]

1.3 Модель Клиент-Сервер

В базовой модели клиент-сервер все процессы в распределенных системах делятся на две возможно перекрывающиеся группы. Процессы, реализующие некоторую службу, например службу файловой системы или базы данных, называются серверами (servers). Процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера, называются клиентами (clients). Взаимодействие клиента и сервера, известное также под названием режим работы запрос-ответ (request-reply behavior), иллюстрирует рис. 1.3.

Рис 1.3 — Обобщенное взаимодействие между клиентом и сервером

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

Использование не требующего соединения протокола дает существенный выигрыш в эффективности. До тех пор пока сообщения не начнут пропадать или повреждаться, можно вполне успешно применять протокол типа запрос-ответ. К сожалению, создать протокол, устойчивый к случайным сбоям связи, — нетривиальная задача. Все, что мы можем сделать, — это дать клиенту возможность повторно послать запрос, на который не был получен ответ. Проблема, однако, состоит в том, что клиент не может определить, действительно ли первоначальное сообщение с запросом было потеряно или ошибка произошла при передаче ответа. Если потерялся ответ, повторная посылка запроса может привести к повторному выполнению операции. Если операция представляла собой что-то вроде «снять 10 000 долларов с моего банковского счета», понятно, что было бы гораздо лучше, если бы вместо повторного выполнения операции вас просто уведомили о произошедшей ошибке. С другой стороны, если операция была «сообщите мне, сколько денег у меня осталось», запрос прекрасно можно было бы послать повторно. Нетрудно заметить, что у этой проблемы нет единого решения.

В качестве альтернативы во многих системах клиент-сервер используется надежный протокол с установкой соединения. Хотя это решение в связи с его относительно низкой производительностью не слишком хорошо подходит для локальных сетей, оно великолепно работает в глобальных системах, для которых ненадежность является «врожденным» свойством соединений. Так, практически все прикладные протоколы Интернета основаны на надежных соединениях по протоколу TCP/IP. В этих случаях всякий раз, когда клиент запрашивает службу, до посылки запроса серверу он должен установить с ним соединение. Сервер обычно использует для посылки ответного сообщения то же самое соединение, после чего оно разрывается. Проблема состоит в том, что установка и разрыв соединения в смысле затрачиваемого времени и ресурсов относительно дороги, особенно если сообщения с запросом и ответом невелики. Мы обсудим альтернативные решения, в которых управление соединением объединяется с передачей данных, в следующей главе.

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

Преимущества:

? Отсутствие дублирования кода программы-сервера программами-клиентами.

? Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.

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

? Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п.

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

Недостатки:

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

? Поддержка работы данной системы требует отдельного специалиста — системного администратора.

? Высокая стоимость оборудования.

Наша система небольшая по своему масштабу, поддержка системного администратора не является необходимой, т.к. при сбое в работе программы нам достаточно всего лишь перезапустить приложение и продолжить работу. Во избежание проблем с недостаточной производительностью сервера, предусмотрим одновременный доступ к серверу только одного клиента. Исходя из вышесказанного, примем предложенную архитектуру удовлетворительной для нашей задачи. [4,5]

2. Функциональные требования и архитектура программы

2.1 Функциональные требования

Программа должна обеспечивать:

? передачу файлов от клиента к серверу;

? передачу файлов от сервера к клиенту;

? обмен сообщениями;

? каждая программа должна обеспечивать функции клиента и сервера одновременно;

2.2 Архитектура программы

Анализируя задание можно заметить, что программа должна обеспечивать функции клиента и сервера одновременно. Т. е. клиентская часть приложения не должна влиять на серверную часть. Исходя из этого, архитектура системы будет строиться на модели «Клиент-Сервер», описанной выше, и принципа обмена данными «Запрос — Ответ». Клиент и Сервер будут работать в отдельных потоках, порты их сокетов будут различными, функции будут разнесены в отдельные классы. Этим самым мы сможем добиться, что клиент после подключения к серверу может самостоятельно выбирать необходимые ему файлы, без участия администратора сервера. Тот же в свою очередь сможет подключиться к другому пользователю, обмениваться сообщениями с обоими пользователями. Краткие схемы принципа работы программы показаны на рис. 1.2 и рис. 1.3 [4,5]

сетевая компьютер клиент сервер

2.3 Диаграмма классов

Рис. 2.1 — Диаграмма классов

В нашей получается 3 класса: классы Server и Client — классы связи между локальным и удаленным компьютером, и класс Window — для взаимодействия пользователя и классов Server и Client, для отображения всех данных и информации.

Рассмотрим функции каждого из классов.

Класс Server:

? Создать поток — инициализирует все данные, необходимые для подключения;

? Запустить — устанавливает серверный сокет на прослушивание входящих подключений. При подключении клиента устанавливает соединение и ожидает запросы от него;

? Завершить поток — закрывает все наличные подключения к серверу, очищает зарезервированные данные и прекращает свою работу;

? Отправить список логических томов — отправляет клиенту список логических томов на сервере;

? Отправить список файлов — отправляет клиенту список файлов и каталогов по запрашиваемому пути;

? Отправить файл — передает данные запрашиваемого файла клиенту;

? Отправить сообщение — отправляет клиенту сообщение, введенное пользователем;

? Принять файл — создает файл по указанному адресу и записывает туда полученную от клиента информацию;

? Отправить сообщение об окончании сессии — сообщает клиенту о завершении подключения;

? Принять сообщение — принимает входящее сообщение.

Класс Client:

? Создать поток — инициализирует все данные, необходимые для подключения;

? Запустить — совершает попытку подключения к серверу. При удачном подключении запрашивает список логических томов удаленного компьютера и запрашивает список файлов по начальному пути;

? Завершить поток — закрывает подключение, очищает зарезервированные данные и прекращает свою работу;

? Принять список файлов — принимает список логических томов удаленного компьютера;

? Отправить файл — передает данные указанного файла на сервер;

? Отправить сообщение — отправляет на сервер сообщение, введенное пользователем;

? Принять сообщение — принимает входящее сообщение;

? Отправить сообщение об окончании сессии — сообщает серверу о завершении подключения.

Класс Window:

? Создать — создает главное окно приложения;

? Инициализация — инициализирует все данные главного окна, элементы взаимодействия с пользователем, создает и запускает серверный поток, вызывает набор функций для отображения начальной информации;

? Найти файлы — возвращает список файлов и каталогов по указанному пути;

? Отобразить найденные файлы — отображает список найденных или полученных файлов в главном окне программы;

? Вывести на экран сообщение клиента — отображает введённое пользователем сообщение;

? Вывести на экран сообщение сервера — отображает на экран полученное сообщение;

? Открыть выбранный файл — запускает на выполнение выбранный пользователем файл;

? Удалить выбранный файл — удаляет выбранный пользователем файл;

? Скопировать выбранный файл — копирует указанный файл на удаленный компьютер;

? Переместить выбранный файл — перемещает указанный файл на удаленный компьютер;

? Запустить чат с клиентом — инициализирует и отображает окно чата с подключенным пользователем;

? Установить подключение — отображает окно для ввода IP-адреса и пароля сервера, создает и запускает на выполнение клиентский поток;

? Завершить подключение — завершает роботу серверного потока;

? Закрыть программу — завершает все потоки и работу программы. [6,7]

2.4 Диаграмма компонентов

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

Рис. 2.2 — Диаграмма компонентов

2.5 Характеристика вычислительных средств и программного обеспечения

? Intel Core i5 2. 4GHz;

? 3. 00 Gb Ram DDR3;

? ATI Radeon 5470 mobile, 512 Mb

? OS Windows 7 Ultimate;

? Visual Studio 2010;

? Net Framework 4. 5;

? ArgoUML 0. 34.

2.6 Описание программы

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

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

В программе присутствуют некоторые ограничения, а именно:

? Нельзя копировать, перемещать, удалять каталоги. Работа доступна со всеми типами пользовательских файлов, архивами и системными файлами;

? Отключено отображение скрытых каталогов и файлов, а так же каталогов, к которым нет доступа;

? Максимальная длина сообщения составляет 256 байт. Т. е. 256 символов латиницей или 128 символов кириллицей;

? Вы можете быть подключены только к одному серверу. Аналогично и к серверу может подключиться только один клиент. Это сделано с целью исключения одновременного доступа двумя клиентами к одним и тем же данным.

3. Тестирование программы

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

Рис. 3.1 — Окно программы при запуске.

Далее делаем попытку подключения к удаленному компьютеру. Должно отобразиться окно для ввода IP-адреса и пароля.

Рис. 3.2 — Диалоговое окно ввода данных для подключения

Запустим второй экземпляр программы и сделаем подключение к ней.

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

Рис. 3.3 — Сообщение об отсутствии данных для подключения

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

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

Результат показан на рис. 3.5.

Рис. 3.4 — Окно программы при успешном подключении

Рис. 3.5 — Результат роботы функции копирования с удаленного компьютера

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

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

Рис. 3.6 — Результат функции копирования на удаленный компьютер

Теперь проверим роботу функций для обмена сообщениями. Для этого отправим данные с сервера и на сервер. Результат роботы показан на рис 3. 7

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

? Если сервер завершил свою роботу — закрывается клиентская часть приложения и появляется возможность повторного подключения;

? Если клиент завершил свою работу — Исчезает мини-чат, для обмена сообщениями, что свидетельствует о том, что входящих подключений нет;

? Те же самые действия должны произойти при потере соединения или неудачной передачи файлов или сообщений.

Рис 3.7 — Результат роботы функций обмена сообщениями

Рис 3.8 — Возврат в исходное состояние при разрыве соединения

Теперь попробуем одновременную работу клиентской и серверной части программы. Для этого попытаемся, при установленном соединении Приложение1 — > Приложение2, установить соединение Приложение2 — > Приложение1.

Рис 3.9 — Результат взаимоподключениями между 2 приложениями

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

4. Инструкция пользователя

4.1 Назначение программы и требования к системе

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

Для использования программы вам необходимо:

? Операционная система Windows XP или выше;

? 256 Mb оперативной памяти или больше;

? 2 Mb свободного дискового пространства;

? Подключение к сети Интернет.

? Установленные драйвера для видеокарты и сетевой карты.

4.2 Интерфейс программы

Рис 4.1 — Интерфейс программы

Элементы интерфейса программы:

1) Список логических томов локального компьютера;

2) Список файлов и каталогов локального компьютера по указанному адресу;

3) Кнопки «Копировать», «Удалить», «Переместить»;

4) Список логических томов удаленного компьютера;

5) Кнопка для завершения подключения к удаленному компьютеру;

6) Ваш пароль для входящих подключений;

7) Список файлов и каталогов удаленного компьютера по указанному адресу;

8) История переписки между вами и пользователем, к которому вы подключены;

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

10) Кнопка для отправки сообщения из поля 9;

11) История переписки между вами и пользователем, который к вам подключен;

12) Поле для ввода текста сообщения пользователю, который к вам подключен;

13) Кнопка для отправки сообщения из поля 12;

4.1 Порядок использования программы

? Запускаем приложение.

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

? Если мы хотим подключиться к удаленному компьютеру, нажимаем кнопку «Подключится», вводим IP-адрес удаленного компьютера и пароль (сообщается отдельно другими способами связи), и нажимаем кнопку «ОК».

? Перемещениями между каталогами осуществляется подобно файловому менеджеру «Total Commander». Для открытия каталога или запуска файла вам достаточно нажать на его имени двойным щелчком левой кнопки мыши. Для возврата в родительский каталог двойным щелчком нажмите на элемент".".

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

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

? Для копирования файла на удаленный компьютер выберите необходимый файл в списке файлов локального компьютера и нажмите кнопку «Копировать». Файл будет скопирован в каталог, открытый в списке файлов удаленного компьютера с таким же именем.

? Для удаления файла на локальном компьютере выберите необходимый файл в списке файлов локального компьютера и нажмите кнопку «Удалить».

Примечание. Удалять файлы на удаленном компьютере нельзя.

? Для перемещения файла с локального компьютера на удаленный на локальном компьютере выберите необходимый файл в списке файлов локального компьютера и нажмите кнопку «Переместить».

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

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

? Для отключения от сервера нажмите кнопку «Отключиться». После этого вы сможете снова подключиться к любому удаленному компьютеру.

Выводы

В ходе разработки нашего приложения были изучены файловая и сетевая системы ОС Windows, принципы проектирования информационных систем, объектно-ориентированное программирование, использование набора библиотек и инструментов интегрированной среды разработки Visual Studio 2010.

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

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

Перечень ссылок

1. Шауцукова Л. З. Информатика. Операционные системы. Назначение. Классификация. ОС Windows. — М., 2005.

2. Федосенко Ю. С. Информационные технологии и системы. — Н. Новгород, 2000.

3. Хомоненко А. Д. Самоучитель Microsoft Windows. — СПб., 2000. — БХВ — Санкт — Петербург, 2001. — 560 с.

4. Коржов В. Многоуровневые системы клиент-сервер. Открытые системы, 1997.

5. Джонс Э., Оланд Д. Программирование в сетях Microsoft Windows. Мастер — класс. — СПб.: Питер, 2002. — 584 с.

6. Румянцев П. В. Работа с файлами в Win32. — Горячая линия — Телеком, 2002. — 197 с.

7. Интернет-ресурс http: //msdn. microsoft. com/ru-ru/

ПоказатьСвернуть
Заполнить форму текущей работой