Смекни!
smekni.com

«Система удаленного администрирования» (стр. 2 из 3)

Объект NetworkStream – это небуферизированный поток, который не поддерживает произвольный доступ к данным. Невозможно изменить позицию внутри потока, и, следовательно, использование метода Seek() и свойства Position() порождает исключение.

Класс FileStream

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

Класс MemoryStream

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

Класс MemoryStream полезен для быстрого временного сохранения данных. Хороший пример его применения – передача сериализованных объектов внутри процесса, можно использовать MemoryStream для временного сохранения сериализованных объектов. Такой подход улучшает производительность по сравнению с использованием классов FileStream или BufferedStream. В нашем приложении MemoryStream используется для максимально производительной передачи изображений с удаленного компьютера. Массив байтов минует сохранение в файл а загружается сразу в виртуальную, после чего сразу отображается в компоненте Image. Так же для обработки сериализованных массивов данных.

Сериализация

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

Вот некоторые основные области, где сериализация дает преимущества:

1. Доступность – компонент можно сохранить в файле и обращаться к нему в любое время.

2. Время жизни – сохранение объекта с его состоянием продлевает ему жизнь. Обычно, когда вы закрываете приложение, все связанные с ним объекты автоматически уничтожаются.

3. Использование в сетевых приложениях – сложная форма объекта была преобразована в формат, подходящий для передачи через сеть и, возможно, через брандмауэры.

4. Надежность – сохраненный объект можно воссоздать «как он есть»

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

Практическая часть

Описание сервера

Внешний вид сервера добавление нового пользователя

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

Сервер в данном приложении служит для аутентификации пользователей. Это происходит следующим образом:

1. Администратор добавляет пользователя на сервере, если выбирает Free User, то пользователь данной системы имеет право только на общий чат, если выбирает Main User, то пользователь имеет право просматривать копию экрана, список процессов, список файлов у Free User.

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

3. После чего необходимо пройти авторизацию. Для этого необходимо ввезти логин и пароль и нажать на кнопку “Go”. После чего эти данные передаются на сервер, где обрабатываются и возвращают команды, дающие понять клиентскому приложению, какие права имеет пользователь.

Описание клиента

Внешний вид

В зависимости от вида пользователей меняется вид клиентского приложения:

Главный пользователь свободный пользователь

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

Функционал клиентского приложения

На второй вкладке отображается список всех подключенных к серверу пользователей. В списке отображается информация о виде пользователя(Admin, Free User), имя пользователя, имя компьютера и IP адрес компьютера. Для обновления списка пользователей необходимо использовать кнопку “Refresh”.

При нажатии правой кнопкой мыши на любом из пользователей, откроется контекстное меню с операциями которые можно применить к данному пользователю: File Manager – Файловый менеджер, Program Manager – Диспетчер задач и Screen – возможность просмотра экрана удаленного компьютера.

File Manager

При выборе пункта File Manager, открывается новая вкладка, на ней находится ComboBox, в который автоматически добавляются все имеющиеся на удаленном компьютере диски или разделы. Так же на вкладке имеются один Label, в котором отображается текущий адрес, пару ListBox в первом отображаются все папки текущего раздела, во втором все файлы. При нажатии правой кнопкой на любом файле появится контекстное меню в котором можно выбрать либо удаление, либо запуск выделенного файла.

Program Manager

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

Screen

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

Заключение

В курсовой работе «Система удаленного администрирования» было разработано клиент серверное приложение для удаленного администрирования и управления компьютеров, используя стандартный протокол TCP/IP, с поддержкой авторизации через логин/пароль. Со следующим набором функции: передачей снимков экрана, работа с файловой системой, работа с процессами приложений.

Все поставленные задачи выполнены, было изучено сетевое программирование в среде FrameWork .NET на сокетах и потоках – цель выполнена.

Список литературы

1. Эндрю Кровчик, Винод Кумар «.NET Сетевое программирование для профессионалов» издательство «Wrox Press Ltd»,русс.«Лори» ISBN 5-85582-170-2 2007 год

2. Программирование для Microsoft Windows на С#. В 2-х томах. Пер. с англ. — М.: Издательско-торговый дом «Русская Редакция», 2002- 576 с.: ил. ISBN 5-7502-0210-0

3. Культин Н.Б. «C# в задачах и примерах» БХВ-Петербург, 2007 – 240с. ISBN 978-5-9775-0115-6

4. Агуров П.В. «C#. Разработка компонентов в MS Visual Studio 20052008» БХВ-Петербург,2008 – 480с. ISBN978-5-9775-0295-5

Приложение

Краткий обзор существующих продуктов

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

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

●Symantec pcAnywhere, без всякого сомнения, можно назвать мечтой системного администратора. Набор возможностей, которые предлагает эта программа, просто огромен. Это - не просто средство для "подглядывания" за действиями пользователей на удаленных ПК, а мощный инструмент для управления всеми функциями компьютера. Все действия, которые администраторы, как правило, вынуждены делать, перемещаясь по зданию от одного компьютера к другому, при помощи pcAnywhere можно выполнить удаленно.

●UltraVNC основное преимущество этой программы перед другими приложениями, представленными в обзоре, - бесплатный статус. Она ничем не уступает многим коммерческим продуктам, а в некоторых случаях даже их превосходит.