Навигация:
<< >> Оглавление Указатель

Приложения

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

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

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

А.2.8.5. RDS_BFM_NETERROR – ошибка при работе с сетью

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

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

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

Константа RDS_BFM_NETERROR.

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

Указатель на структуру RDS_NETERRORDATA, содержащую код и описание ошибки.

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

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

Примечания

Реакция на событие RDS_BFM_NETERROR вызывается у блоков, участвующих в приеме или передаче данных, при возникновении различных ошибок в сетевом соединении. Большую часть таких ошибок RDS обрабатывает самостоятельно, поэтому, как правило, в моделях блоков реакция на это событие не требуется. Процедуры обмена данными по сети, используемые в RDS, подробно описаны в §2.15 руководства программиста.

При реакции на событие RDS_BFM_NETERROR в параметре ExtParam передается указатель на структуру RDS_NETERRORDATA:

  typedef struct {
     ConnId;        // Идентификатор соединения
     HostA;          // URL или IP-адрес сервера (UTF8)
     HostW;         // URL или IP-адрес сервера (UTF16)
    // Host;        // URL или IP-адрес сервера ()
     Port;          // Порт
     ChannelA;       // Имя канала (UTF8)
     ChannelW;      // Имя канала (UTF16)
    // Channel;     // Имя канала ()
     ErrorCode;     // Код ошибки (RDS_NETERR_*)
     Station; // Идентификатор машины
     Block;     // Идентификатор блока
  } RDS_NETERRORDATA;
  typedef RDS_NETERRORDATA *RDS_PNETERRORDATA;

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

ConnId (RDSINT32)
Идентификатор соединения, возвращенный функцией rdsNetConnect при его создании.
HostA (RDSCSTR), HostW (RDSWCSTR), Host (RDSXCSTR)
Имя (URL) или IP-адрес сервера, с которым установлено соединение (только в том случае, если в качестве сервера не используется та же копия «rds.exe», в которую загружена схема с данным блоком).
Port ()
Номер сетевого порта, через который идет обмен данными.
ChannelA (), ChannelW (), Channel ()
Имя канала передачи данных.
ErrorCode ()
Код возникшей ошибки – одна из следующих констант:
RDS_NETERR_NOBLOCK Блок, которому переданы данные функцией rdsNetSendData, не существует.
RDS_NETERR_SEND Ошибка при передаче данных.
RDS_NETERR_RECEIVE Ошибка при приеме данных.
RDS_NETERR_DISCONNECT Ошибка при попытке разорвать связь.
RDS_NETERR_ACCEPT Ошибка при установке соединения сервера с клиентом.
RDS_NETERR_CLIENTCONN Для блоков схемы, работающей на сервере: ошибка при установке соединения с клиентом.
RDS_NETERR_GENERAL Неизвестная ошибка.
Station (RDS_NETSTATION)
Сетевой идентификатор «проблемной» машины. При коде ошибки RDS_NETERR_NOBLOCK в этом поле указывается сетевой идентификатор машины, переданный при вызове данным блоком функции rdsNetSendData, если пара идентификаторов «машина, блок», использованная в этом вызове, не соответствует реально существующему блоку (то есть если такой машины нет, или если идентификатор машины правильный, но на ней нет блока с указанным в вызове идентификатором).
Block (RDS_NETBLOCK)
Сетевой идентификатор «проблемного» блока. При коде ошибки RDS_NETERR_NOBLOCK в этом поле указывается сетевой идентификатор блока, переданный при вызове данным блоком функции rdsNetSendData, если пара идентификаторов «машина, блок», использованная в этом вызове, не соответствует реально существующему блоку (то есть если такой машины нет, или если идентификатор машины правильный, но на ней нет блока с указанным в вызове идентификатором).

См. также

RDS_BFM_NETCONNECT, RDS_BFM_NETDISCONNECT, rdsNetBroadcastData, rdsNetSendData.


<< >> Оглавление Указатель