M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

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