Локальные сети персональных компьютеров. Работа с сервером Novell NetWare© Александр Фролов, Григорий ФроловТом 4, М.: Диалог-МИФИ, 1993, 168 стр. 9.12. Работа с протоколом IPXВ этом разделе мы приведем описание тех функций, предназначенных для работы с протоколом IPX, которые были использованы в нашей книге. Полное описание дано в документации, поставляющейся с библиотекой Novell NetWare C Interface. Инициализация драйвера IPXint IPXInitialize(void) ; Функция возвращает 0 при успешном завершении или код ошибки. Открытие сокетаint IPXOpenSocket(char *SocketNumber, char SocketType) ; Функция возвращает 0 при успешном завершении или код ошибки. Параметры:
Закрытие сокетаint IPXCloseSocket(char *SocketNumber); Функция возвращает 0 при успешном завершении или код ошибки. Параметры:
Прием IPX-пакетаvoid IPXListenForPacket(ECB *EventControlBlock); Параметры:
Передача пакетаvoid IPXSendPacket(ECB *EventControlBlock); Параметры:
Отмена блока ECBvoid IPXCancelEvent(ECB *EventControlBlock); Параметры:
Определение собственного сетевого адресаvoid IPXGetInternetworkAddress(IPXAddress *NetworkAddress) ; Параметры:
Типы данныхСетевой адрес typedef struct IPXAddress { BYTE network[4]; BYTE node[6]; BYTE socket[2]; } IPXAddress; Заголовок пакета IPX typedef struct IPXHeader { WORD checkSum; WORD length; BYTE transportControl; BYTE packetType; IPXAddress destination; IPXAddress source; } IPXHeader; Дальние указатели на данные и функции #define FARDATAPTR(type,var) type far *var #define FARCODEPTR(type,var) type (far *var)() Дескриптор фрагмента typedef struct ECBFragment { FARDATAPTR(void,address); WORD size; } ECBFragment; Блок ECB typedef struct ECB { FARDATAPTR(void, linkAddress); FARCODEPTR(void, ESRAddress); BYTE inUseFlag; BYTE completionCode; WORD socketNumber; BYTE IPXWorkspace[4]; BYTE driverWorkspace[12]; BYTE immediateAddress[6]; WORD fragmentCount; ECBFragment fragmentDescriptor[2]; } ECB; |