Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prakt-Storozhok.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.98 Mб
Скачать

Занятие 14. Исследование возможностей поддержки протокола тср

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

Цель работы: исследовать возможности компонентов Delphi -IdTCPClient и IdTCPServer для обеспечения работы в сети.

1. Теоретическое введение

В теоретическом введении рассматриваются следующие вопросы.

  • Методы INDY-компонента - IdTCPClient.

  • Методы INDY-компонента - IdTCPServer.

Поддержка протокола TCP реализована также компонентами IdTCPClient (клиенты Indy) и IdTCPServer (серверы Indy) - аналогами Borland-компонентов TcpClient и TcpServer, расположенных на вкладке Internet

1.1. Методы indy-компонента- IdTcpClient

Приложение TCP-клиента подключается к TCP-серверу после указания имени и IP-адреса сервера (свойство Host компонента IdTCPCIient), a также номера серверного порта (свойство Port компонента IdTCPClient).

Для передачи данных используются методы Write, WriteBuffer, WrileCardinal, WriteLn, WriteFile, WriteStrings, WriteStream, Writefile и т. п.

Для получения данных используются методы ReadBufter, ReadCardinal, ReadLn, ReadStrings и т. п.

Для передачи команд используется метод SendCmd.

1.2. Методы indy-компонента - IdTcpServer

С помощью компонента IdTCPServer можно создавать серверные TCP-приложения. Он привязывается к порту сервера (например, 8080), получает командные запросы от TСР-клиентов и отвечает на них с помощью обработчика события onExecute. Например, если клиентское TCP-приложение отправляет на сервер данные с помощью метода WriteLn, то для прочтения этого текста можно воспользоваться парамет­ром AThread метода OnExecute. В табл. 1. перечислены те свойства компо­нента IdTCPServer, которые заслуживают особого внимания.

Если нужно создать серверное приложение, которое отвечало бы на запросы клииента через порт 9090, го свойству DefaultPort нужно присвоить значение 9090, а затем свойству Active - значение True.

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

Procedure TForm1.IdTCTServer|Execute(AThread:TIdPeerThread);

begin

ShowMessage(AThread.Connection.ReadLn Wait);

end;

При вызове обработчика события OnExecute серверного TСР-компонента IdTCPServer1 в качестве параметра будет передан объект класса TIDPeerThread. Параметр AThread содержит ссылку на обращение к объекгу типа TIdTCPServerConnection. Класс TldTCPServerConnection является производным от класса TldTCPConnection, который, в свою очередь, содержит методы передачи и приема данных в текстовой форме, строковых команд и объектов типа TStream. Кроме того, данный класс позволяет определять состояние компонента ТСР-соединения.

Таблица 1

Свойства компонента IdTCPServer

Свойство

Описание

AcceptWait

Период ожидания подключения со стороны клиента

Active

Булево значение. Значение True соответствует активному серверу

Bindings

Строка вида IP: порт, показывающая IP-адрес и номер порта сервера, принимающего запрос

DefaultPort

Порт по умолчанию, через который клиент подклю­чается к серверу

Intercept

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

ThreadMgr

Ссылка на менеджер потоков, содержащий перечень потоковых объектов, которым соответствуют кли­ентские подключения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]