|
Компонент 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).
|