Обмен текстовой информацией между компьютерами в локальной сети

Страницы работы

7 страниц (Word-файл)

Содержание работы

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

ОБМЕН ТЕКСТОВОЙ ИНФОРМАЦИЕЙ МЕЖДУ КОМПЬЮТЕРАМИ В ЛОКАЛЬНОЙ СЕТИ

1 ЦЕЛЬ РАБОТЫ

1.1Изучить средства реализации обмена текстовыми сообщениями между компьютерами, исполь­
зующими стек протоколов TCP/IP.

1.2Получить практические навыки использования компонентов NMMSGServ и NMMsg.

2 САМОСТОЯТЕЛЬНАЯ ПОДГОТОВКА

2.1 Подготовьте бланк отчета.

2.2Проработайте методические указания, теоретический материал и материалы лекций и выполни­
те задания, указанные в п. 4.

3 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

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

Компоненты, используемые в данной лабораторной работе, требуют указания адреса сервера. На­звание сервера задается в свойстве Host. В этом свойстве может указываться имя сервера (URL) или его IP-адрес. Если приложение отлаживается на локальном компьютере, то его IP-адрес 127.0.0.1. В качестве аль­тернативы свойству Hostможно задать значение "localhost".

При работе в локальной сети каждый компьютер также может быть одновременно и клиентом и сервером. Свойство Hostдолжно содержать имя или IP-адрес соответствующего компьютера. При работе в Internet значение свойства Hostзаписывается как полный URL (например, http://www.newserver.com), со­ответственно, в этом случае сервером может быть только компьютер, имеющий URL.

Кроме того, ряд компонентов имеют свойство Port, задающее программный порт компьютера (идентификатор процесса), к которому подключаются программы, чтобы передавать и принимать инфор­мацию. Порт характеризуется своим номером. Многие номера закреплены за определенными протоколами или службами Internet, так что при их использовании свойство Portзадается автоматически. В ряде случаев значение свойства Portможно задавать самостоятельно. При этом нужно следить, чтобы не задействовать один из уже занятых портов.

Для установления соединения многие компоненты используют метод Connect. Проверить, установ­лено ли соединение, можно по булеву свойству Connected: true- соединен, false- не соединен.

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

В процессе соединения генерируется ряд событий. Если соединение осуществляется с указанием IP-адреса, то наступает событие OnHostResolved. Событие OnConnectнаступает в момент установления со­единения. Событие OnDisconnectнаступает в момент разрыва соединения. Обработку событии, а также перехват возможных ошибок рекомендуется осуществлять с использованием структуры try... catch.

Свойство ReportLevelопределяет степень детализации процесса передачи сообщений. По умолча­нию оно имеет нулевое значение и никак не влияет на процесс соединения. Если оно имеет одно из значе­ний 1,2,4,8, или 16, то на некоторых промежуточных операциях установления соединения и передачи со­общений возникают события OnStatus. Заголовок обработчика такого события имеет вид:

void__ fastcallимя(TComponent *Sender, AnsiString Status)

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

Обмен текстовыми сообщениями между двумя приложениями, работающими на разных компьюте­рах, подключенных к сети, можно организовать с помощью компонентов NMMSGSerg и NMMsg, распо­ложенных на странице библиотеки FastNet. Сообщения передаются компонентом MMsg, который распола­гается на форме приложения-клиента. Он имеет свойства Portи Host, описанные выше. По-умолчанию свойство Portимеет значении 6711, его можно оставить без изменений.

Основной метод компонента - Postlt, обеспечивающий отправку сообщений. Он объявлен следую­щим образом:

AnsiString ___ fastcall Postlt(const AnsiString sMsg);

Параметр sMsgсодержит текст передаваемого сообщения. Метод возвращает строку «ОК», если адресат найден и сообщение передано.Если передача не удалась, то выполнение метода заканчивается ге­нерацией исключения.

Исключение генерируется при любой неудачной передаче сообщения. Если неудача связана с оши­бочным IP-адресом (значение свойства Hostначинается с цифры и сервер с данным адресом не найден), то перед генерацией исключения наступает событие OnConnectionFailed. Если был задан URL (значение Hostначинается с буквы и сервер с данным адресом не найден), то перед генерацией исключения наступает со­бытие OnlnvalidHost.

Компонент NMMSGServобеспечивает получение сообщений на сервере, которым может быть лю­бое приложение, содержащее данный компонент. Свойства этого компонента не отличаются от свойств NMMsg.

Основное свойство компонента - OnMSG, оно происходит при успешном получении сообщения. Заголовок обработчика этого события имеет вид:

void___ fastcallTForml::NMMSGServlMSG(TComponent *Sender,

const AnsiString sFrom, const AnsiString sMsg)

Параметр sFromсодержит строку с именем того клиента, от которого пришло сообщение, т.е. со­держимое свойства FromNameкомпонента NMMsg. Параметр sMsgсодержит строку сообщения, т.е. сто­ку, переданную компонентом NMMsgс помощью метода Postlt.

В момент соединения с клиентом наступает событие OnClientContact. В момент разрыва соедине­ния - OnDisconnect.

Последовательность событий, возникающих при выполнении клиентом метода Postlt:

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
108 Kb
Скачали:
0