на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка программы приема и передачи сообщений в локальной сети Microsoft

Разработка программы приема и передачи сообщений в локальной сети Microsoft

1

122

Разработка программы передачи и приёма сообщений в локальной сети Microsoft

На сегодняшний день существует довольно большое число программ отправки и принятия сообщений для локальных сетей под управлением на платформах от компаний Microsoft, таких как семейство Windows 9x (95, 98, ME, XP) и Windows NT4, Windows2000, разнообразных как по алгоритмам, так и по используемым протоколам. Основной задачей, на которую следует ориентироваться при выборе подобных программ, является величина бюджета, и как следствие, расходы на дополнительную закупку оргтехники (серверы, дополнительные сети, концентраторы).

Поэтому такие программы разделяются на 2 типа:

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

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

К первым средствам передачи сообщений можно отнести такие программы, как Microsoft Messenger, AOL ICQ, различные чаты и телеконференции.

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

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

Целью настоящего проекта явилось создание многофункциональной программы получения и отправки сообщений по локальной сети. Программа разрабатывалась в локальной сети общежития МИЭТ (SWAMP), насчитывающей 400 компьютеров на сегодняшний момент. В процессе создания использовались менее функциональные, но аналогичные по разработке программы Winpopup и Traypopup.

Эскизный проект

Описание протоколов, используемых при написании дипломной работы

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

Протоколы представляют собой набор условий (правил), которые регламентируют формат и процедуры обмена информацией между двумя или несколькими независимыми устройствами или процессами. Протокол имеет три важнейших элемента: синтаксис, семантику и синхронизацию (timing). Синтаксис протокола определяет поля, например, может быть 16-байтовое поле для адресов, 32-байтовое поле для контрольных сумм и 512 байт на пакет. Семантика протокола придает этим полям значение: например, если адресное поле состоит из всех адресов, это «широковещательный» пакет. Синхронизация - количество битов в секунду - это скорость передачи данных. Она важна не только на самых низких уровнях протокола, но и на высших.

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

Встроенные основные протоколы Windows:

Network Basic Input/Output System (NetBIOS)

NetBIOS Extended User Interface (NetBEUI)

Transmission Control Protocol (TCP/IP)

NWLink Internetwork Packet Exchange/Sequenced packet Exchange (IPX/SPX)

Теперь рассмотрим каждый из них.

NetBIOS

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

NetBEUI

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

NetBEUI можно использовать только в небольшой сети. К примеру, в локальной сети общежития МИЭТ, где используются средства маршрутизации, применение данного протокола является нецелесообразным.

TCP/IP

Протокол TCP/IP на сегодняшний день чаще всего используется для работы в сети. Именно этому протоколу Интернет обязан своим быстрым ростом. TCP/IP - самый гибкий транспортный протокол, позволяющий охватывать большие сетевые пространства. Кроме того, он предоставляет возможности для поддержки платформенно-независимых приложений, маршрутизации, а также поддерживает протоколы SNMP, DHCP, службы WINS и DNS.

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

NWLink (IPX/SPX)

NWLink - это реализация фирмой Microsoft набора протоколов IPX/SPX, используемых фирмой Novell в сетях NetWare. Этот протокол включен в NT для возможности общения с серверами NetWare. С помощью этого протокола клиенты сетей Microsoft могут пользоваться ресурсами серверов Netware и наоборот

Операционные системы семейства Windows используют NWLink для работы с клиентами и серверами NetWare. Кроме того, клиентам и серверам NetWare требуется служба File And Printer Sevice For NetWare для работы с файлами и принтерами семейства Windows.

NWLink используется в сетях, в которых находятся серверы NetWare, или там, где требуются средства маршрутизации, но не хватает ресурсов для использования протокола TCP/IP.

Рис. 1.1. Пример настройки сетевого окружения OC семейства Windows

Обзор аналогичных программ принятия и отправки сообщений

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

Winpopup.

Входит в стандартную поставку Windows. В отличие от Winpopup, в программе, представленной в данной дипломной работе, окна отправки и принятия сообщений являются независимыми, что очень удобно для быстрых переговоров: в окне отправки сообщения пишется текст, а получение сообщений происходит в другом окне и между данными окнами можно свободно переключаться. В программе Winpopup такой независимости нет, поэтому для просмотра входящего сообщения приходится отменять отправления своего текста получателю, что является очень неудобной особенностью стандартного средства отправки и приёма сообщений Windows 9x. Что примечательно, в стандартной поставке Windows NT нет аналога Winpopup, поэтому данная программа может являться хорошим сервисом для локальных сетей, состоящих из компьютеров этой операционной системы.

Traypopup.

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

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

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

Технический проект

Общая структура системы

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

Используя почтовые слоты (mailslots) и функции NetBIOS, данная программа полностью совместима с такими стандартными утилитами как WinPopup, net send. Добавлен ряд полезных новшеств, функций и возможностей, такие как история сообщений, быстрые ответы, поддержка большинства ОС Microsoft, быстрый список, поддержка сетевых групп.

Почтовый слот (mailslot)

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

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

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

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

Создание почтового слота.

Для создания слота в приложении используется функция CreateMailSlot():

HANDLE CreateMailslot (

LPCTSTR lpName,

DWORD nMaxMessageSize,

DWORD lReadTimeout,

LPSECURITY_ATTRIBUTES lpSecurityAttributes);

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

\\.\mailslot\[путь] имя

В именах почтовых слотов поддерживается псевдокаталоговая структура. Для лучшей организации почтовых слотов в их именах можно указывать пути в каталогах.

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

Если функция CreateMailSlot() завершается успешно, она возвращает ключ для нового слота. В случае ошибки возвращается значение INVALID_HANDLE_VALUE, для получения кода ошибки можно воспользоваться функцией GetLastError().

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

Hslot: = CreateMailSlot(«\\\\.\mailslot\\MySlot\MsgSlot»,

300,

MAILSLOT_WAIT_FOREVER,

NULL);

If hSlot=INVALID_HANDLE_VALUE then

Begin

ShowMessage (`CreateMailSlot Error', GetLastError());

Halt(0);

End;

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

Чтение из почтового слота

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

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

Запись в почтовый слот

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

При вызове CreateFile() необходимо указать имя слота, которому посылается сообщение. Указанное имя допускает циркулярную рассылку данных всем слотам с такими же именами на компьютерах домена.

Для локального компьютера имя слота выглядит следующим образом:

\\.\mailslot\[путь] имя

Для удалённого компьютера имя слота имеет следующий вид:

\\имя_удалённого_компьютера\mailslot\[путь] имя

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

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.