Компонент
TSocketConnection
Компонент TSocketConnection обеспечивает соединение клиента с сервером приложений за счет использования сокетов TCP/IP. Для успешного открытия соединения на стороне сервера должен работать сокет-сервер (приложение ScktSrvr.exe, рис. 20.4).
Для успешного соединения свойство
property Host: String;
должно содержать имя компьютера сервера.
Рис. 20.4. Сокет-сервер
ScktSrvr.exe
Дополнительно, свойство
property Address:
String;
должно содержать IP-адрес сервера.
Для открытия соединения должны быть заданы оба
этих свойства.
Свойство
property Port:
Integer;
устанавливает номер используемого порта. По
умолчанию это порт 211, но разработчик волен изменить порт, например, для использования
различными категориями пользователей или для создания защищенного канала.
После правильного выбора компьютера в списке
свойства
property ServerName:
string;
в Инспекторе объектов появляется перечень доступных
серверов Автоматизации. И после выбора сервера свойство
property ServerGUID:
string;
которое содержит имя компьютера GUID зарегистрированного
сервера, задается автоматически, хотя его можно задать и вручную.
Метод
function GetServerList:
OleVariant; virtual;
возвращает список зарегистрированных серверов
Автоматизации. Открытие и закрытие соединения осуществляется свойством
property Connected:
Boolean;
или методами
procedure Open;
procedure
Close;
соответственно.
Канал сокета TCP/IP может быть зашифрован. Для
этого используется свойство
property InterceptName:
string;
содержащее программный идентификатор объекта
СОМ, обеспечивающего шифрование/дешифрование данных в канале, и свойство
property InterceptGUID:
string;
содержащее имя компьютера GUID этого объекта.
Этот объект СОМ перехватывает данные в канале
и осуществляет их обработку, предусмотренную собственным программным кодом.
Это может быть шифрование, сжатие, обработка шумов и т. д.
Примечание
Создание объекта СОМ, обеспечивающего дополнительную
обработку данных в канале, ложится на плечи разработчика. Объект-перехватчик
должен поддерживать стандартный интерфейс IDataintercept.
Естественно, на стороне сервера должен быть
зарегистрирован объект СОМ, выполняющий обратную операцию. Для этого также используется
сокет-сервер (рис. 20.5). Строка Interceptor на странице должна содержать
имя компьютера GUID объекта-перехватчика СОМ.
Рис. 20.5. Регистрация
объекта-перехватчика СОМ в сокет-сервере
Метод
function GetlnterceptorList:
OleVariant; virtual;
возвращает список зарегистрированных на сервере
объектов-перехватчиков.
Для организации передачи данных между клиентом
и сервером компонент TSocketConnection
предоставляет интерфейс IAppServer
property AppServer:
Variant;
который также может быть получен методом
function GetServer:
lAppServer; override;
Свойство
property ObjectBroker:
TCustomObjectBroker;
позволяет использовать экземпляр компонента
TSimpieObjectBroker для получения списка
доступных серверов во время выполнения (см. ниже).
Методы-обработчики событий компонента
TSocketConnection полностью совпадают с методами-обработчиками компонента
TDCOMConnection (см. табл. 20.1).
|