Текущий раздел:

Описания RDS

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.10. Обмен данными по сети

§3.7.10.2. Сетевое соединение установлено

# Описание пользователя

## Глава 3. Использование стандартных модулей автокомпиляции

### §3.7. Краткий перечень вводимых в модель описаний и реакций на события

#### §3.7.10. Обмен данными по сети

##### §3.7.10.2. Сетевое соединение установлено

Это событие возникает в блоке, запросившем сетевое соединение с каким-либо каналом передачи данных сервера, после успешной установки этого соединения. Как правило, модели блоков не отправляют данные другим блокам до наступления этого события. Стандартный модуль автокомпиляции не автоматизирует передачу данных между блоками по сети, желающие реализовать ее могут изучить §2.15 руководства программиста.

Текст реакции на установку соединения вводится на вкладке «события» левой панели редактора модели: раздел «сеть», подраздел «соединение установлено». В классе блока для нее создается функция с именем rdsbcppNetConnect следующего вида:

      // Server connection established
      void rdsbcppBlockClass::rdsbcppNetConnect(RDS_PNETCONNDATA ConnData)
      {
         … пользовательский текст реакции …
      }

Параметр функции ConnData – это указатель на структуру RDS_NETCONNDATA, описывающую параметры установленного соединения:

      typedef struct {
        RDSINT32 ConnId;     // Идентификатор соединения
        RDSCSTR HostA;       // URL или IP-адрес сервера (UTF8)
        RDSWCSTR HostW;      // URL или IP-адрес сервера (UTF16)
        //RDSXCSTR Host;     // URL или IP-адрес сервера (поле-псевдоним)
        RDSINT32 Port;       // Порт
        RDSCSTR ChannelA;    // Имя канала (UTF8)
        RDSWCSTR ChannelW;   // Имя канала (UTF16)
        //RDSXCSTR Channel;  // Имя канала (поле-псевдоним)
        BOOL ByServer;       // Cоединение разорвано сервером
      } RDS_NETCONNDATA;
      typedef RDS_NETCONNDATA *RDS_PNETCONNDATA;

Поля структуры имеют следующий смысл:

ConnId(int)
  Уникальный идентификатор сетевого соединения, возвращенный сервисной функцией при его создании.
HostA(RDSCSTR),HostW(RDSWCSTR),Host(RDSXCSTR)
  Имя (URL) или IP-адрес сервера, с которым установлено соединение.
Port(int)
  Номер сетевого порта, через который идет обмен данными.
ChannelA(RDSCSTR),ChannelW(RDSWCSTR),Channel(RDSXCSTR)
  Имя канала передачи данных, с которым установлено соединение.
ByServer(BOOL)
  В реакции на установку соединения не используется – TRUE, если соединение разорвано сервером.

При написании моделей блоков без использования модуля автокомпиляции успешной установке сетевого соединения соответствует константа RDS RDS_BFM_NETCONNECT.