Использование протоколов IPX, SPX, NETBIOS



         

Формат блока ECB - часть 2


FFhECB используется для передачи пакета данных;
FEhECB используется для приема пакета данных, предназначенного программе с определенным сокетом;
FDhECB используется функциями асинхронного управления событиями AES (Asynchronous Event Sheduler), ECB находится в состоянии ожидания истечения заданного временного интервала;
FBhпакет данных принят или передан, но ECB находится во внутренней очереди IPX в ожидании завершения обработки.

Функции асинхронного управления AES будут рассмотрены позже.

Программа может постоянно опрашивать поле InUse, ожидая завершения процесса передачи или приема данных. Как только в этом поле окажется нулевое значение, программа может считать, что запрошенная функция выполнена. Результат выполнения можно получить в поле CCode.

Поле CCode после выполнения функции IPX (после того, как в поле InUse будет нулевое значение) содержит код результата выполнения.

Если с данным ECB была связана команда приема пакета, в поле CCode могут находиться следующие значения:

00пакет был принят без ошибок;
FFhуказанный в ECB сокет не был предварительно открыт программой;
FDhпереполнение пакета: либо поле количества фрагментов в пакете FragmentCnt равно нулю, либо буферы, описанные дескрипторами фрагментов, имеют недостаточный размер для записи принятого пакета;
FChзапрос на прием данного пакета был отменен специальной функцией драйвера IPX.

Если ECB использовался для передачи пакета, в поле CCode после завершения передачи могут находиться следующие значения:

00пакет был передан без ошибок (что, кстати, не означает, что пакет был доставлен по назначению и успешно принят станцией-адресатом, так как протокол IPX не обеспечивает гарантированной доставки пакетов);
FFhпакет невозможно передать физически из-за неисправности в сетевом адаптере или в сети;
FEhпакет невозможно доставить по назначению, так как станция с указанным адресом не существует или неисправна;
FDhсбойный: либо имеет длину меньше 30 байт, либо первый фрагмент пакета по размеру меньше размера стандартного заголовка пакета IPX, либо поле количества фрагментов в пакете FragmentCnt равно нулю;
FChзапрос на передачу данного пакета был отменен специальной функцией драйвера IPX.
<


Содержание  Назад  Вперед