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

1.2.4. Компонент TserverSocket

Самое главное свойство этого компонента - уже упоминавшаяся ссылка на объект:

property Socket: TServerWinsocket;.

Именно благодаря ему доступны все функциональные возможности сокета. Компонент же создан только для того, чтобы опубликовать необходимые свойства и события. В нем имеются свои события OnClientConnect, OnClientDisconnect, InClientRead, OnClientWrite, OnClientError, но они не самостоятельны, а только отсылают к соответствующим событиям объекта класса TServerWinsocket. Также обстоит дело и со свойствами ServerТуре ThreadCacheSize.

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

  • property OnListen: TSocketNotifyEvent; - происходит после того как заданы адрес и порт сокета, и перед тем как он включается в режим прослушивания (готовности к соединению);

  • property On Accept: TSocketNotifyEvent; - происходит непосредственно после установки соединения.

Свойство

property Active: Boolean;

отвечает за состояние сокета. Для клиентского сокета изменение его значения соответствует подключению/отключению от сервера. Для серверного - включение/выключение состояния прослушивания. Использовании этого свойства равносильно применению следующих методов:

  • procedure Open;

  • procedure Close;.

Свойство

property Service: string;

пригодится для идентификации назначения сокета. Здесь должно храниться символьное имя сервиса, для которого используется сокет (ftp, http, telnet и др.)

1.2.5. Класс tClientWinsocket

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

type TCIientТype=(ctNonBlocking, ctBlocking);

property Client Type: TClient Type;.

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

1.2.6. Компонент tClientSocket

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

1) Вызывается метод Open (или свойство Active устанавливается True).

2) Перед началом инициализации происходит событие property OnLookup: TSocketNotifyEvent;.

3) В этот момент еще можно поменян, свойства объекта типа -

TClienlWinsocket: адрес, номер порта и т. п.

4)Сокет полностью инициализируется и начинает поиск. Когда серверный, сокет обнаружен, происходит событие

properly OnConnecting;TSocketNotifyEvent;.

5) Когда клиентский запрос удовлетворен сервером и установлено соединение, происходит событие properly OnConnect: TsocketNotifyEvent.

В работе рассмотрим основные свойства и методы компонентов ServerSocket и TClientSocket.

2. Задание по практическому занятию

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

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