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

Описания RDS

Приложения

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

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

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

А.2.8.2. RDS_BFM_NETDATAACCEPTED – получение данных сервером

# Приложения

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

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

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

##### А.2.8.2. RDS_BFM_NETDATAACCEPTED – получение данных сервером

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

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

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

Константа RDS_BFM_NETDATAACCEPTED.

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

Указатель на структуру RDS_NETACCEPTDATA, содержащую информацию о принятом сервером блоке данных.

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

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

Примечания

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

В параметре ExtParam передается указатель на структуру RDS_NETACCEPTDATA:

      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;  // Имя канала (поле-псевдоним)
        RDSINT32 Id;         // Идентификатор полученного блока данных
      } RDS_NETACCEPTDATA;
      typedef RDS_NETACCEPTDATA *RDS_PNETACCEPTDATA;

Поля структуры

ConnId(RDSINT32)
  Идентификатор соединения, возвращенный функцией rdsNetConnect при его создании.
HostA(RDSCSTR),HostW(RDSWCSTR),Host(RDSXCSTR)
  Имя (URL) или IP-адрес сервера, с которым установлено соединение (только в том случае, если в качестве сервера не используется та же копия «rds.exe», в которую загружена схема с данным блоком).
Port(RDSINT32)
  Номер сетевого порта, через который идет обмен данными.
ChannelA(RDSCSTR),ChannelW(RDSWCSTR),Channel(RDSXCSTR)
  Имя канала передачи данных.
Id(RDSINT32)
  Идентификатор полученных сервером данных (целое число, указанное в вызове одной из функций передачи данных). По нему модель блока может определить, какая именно порция данных принята сервером.

См. также

RDS_BFM_NETDATARECEIVED, rdsNetBroadcastData, rdsNetSendData.