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

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.2. События блока и связанные с ними описания

А.2.8. События обмена данными по сети

А.2.8.1. RDS_BFM_NETCONNECT – установка соединения

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.2. События блока и связанные с ними описания

#### А.2.8. События обмена данными по сети

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

##### А.2.8.1. RDS_BFM_NETCONNECT – установка соединения

Поток, в котором вызывается функция модели

Главный поток RDS.

Первый параметр функции модели (int CallMode)

Константа RDS_BFM_NETCONNECT.

Третий параметр функции модели (void *ExtParam)

Указатель на структуру RDS_NETCONNDATA, содержащую идентификатор установленного соединения, имя канала и другую информацию о соединении.

Возвращаемое функцией модели значение

Не используется, можно возвращать любое значение.

Примечания

Реакция на событие RDS_BFM_NETCONNECT вызывается у блока, запросившего сетевое соединение с каким-либо каналом передачи данных сервера вызовом rdsNetConnect, после успешной установки этого соединения. Чаще всего отправку данных на сервер не производят до наступления этого события: хотя RDS позволяет ставить данные в очередь на передачу до фактической установки соединения, обычно этого не делают, чтобы не перегружать очередь. Процедуры обмена данными по сети, используемые в RDS, подробно описаны в §2.15 руководства программиста.

В параметре ExtParam передается указатель на структуру 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(RDSINT32)
  Идентификатор соединения, возвращенный функцией rdsNetConnect при его создании.
HostA(RDSCSTR),HostW(RDSWCSTR),Host(RDSXCSTR)
  Имя (URL) или IP-адрес сервера, с которым установлено соединение (только в том случае, если в качестве сервера не используется та же копия «rds.exe», в которую загружена схема с данным блоком).
Port(RDSINT32)
  Номер сетевого порта, через который идет обмен данными.
ChannelA(RDSCSTR),ChannelW(RDSWCSTR),Channel(RDSXCSTR)
  Имя канала передачи данных.
ByServer(BOOL)
  TRUE, если соединение разорвано сервером (только в реакции на событие RDS_BFM_NETDISCONNECT, в реакции на RDS_BFM_NETCONNECT это поле не используется).

См. также

RDS_BFM_NETDISCONNECT, rdsNetConnect.