Локальные сети персональных компьютеров. Работа с сервером 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;
|

