Приложения
Приложение А. Функции, константы и структуры 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 это поле не используется).
См. также