Локальные сети персональных компьютеров Использование протоколов IPX, SPX, NETBIOS


Простая система "клиент-сервер" - часть 6


struct IPXSPX_REGS iregs;

iregs.bx = IPX_CMD_OPEN_SOCKET; iregs.dx = IntSwap(*Socket); iregs.ax = SocketType; ipxspx_entry( (void far *)&iregs );

*Socket = IntSwap(iregs.dx); return(iregs.ax); }

/** * .Name IPXCloseSocket * * .Title Закрыть сокет * * .Descr Функция закрывает сокет. * Перед вызовом необходимо подготовить в памяти * слово и записать в него значение закрываемого * сокета. Адрес слова передается через параметр Socket. * * .Params unsigned *Socket - указатель на слово, в котором * находится номер закрываемого сокета. * * .Return Ничего **/

void IPXCloseSocket(unsigned *Socket) {

struct IPXSPX_REGS iregs;

iregs.bx = IPX_CMD_CLOSE_SOCKET; iregs.dx = IntSwap(*Socket); ipxspx_entry( (void far *)&iregs ); }

/** * .Name IPXListenForPacket * * .Title Принять пакет * * .Descr Функция подготавливает ECB для приема * пакета из сети. Указатель на ECB передается * через параметр RxECB. * * .Params struct ECB *RxECB - указатель на ECB, * заполненное для приема пакета. * * .Return Ничего **/ void IPXListenForPacket(struct ECB *RxECB) {

struct IPXSPX_REGS iregs;

iregs.es = FP_SEG((void far*)RxECB); iregs.si = FP_OFF((void far*)RxECB); iregs.bx = IPX_CMD_LISTEN_FOR_PACKET; ipxspx_entry( (void far *)&iregs ); }

/** * .Name IPXSendPacket * * .Title Передать пакет * .Descr Функция подготавливает ECB для передачи * пакета. Указатель на ECB передается через * параметр TxECB. * * .Params struct ECB *TxECB - указатель на ECB, * заполненное для передачи пакета. * * .Return Ничего **/

void IPXSendPacket(struct ECB *TxECB) {

struct IPXSPX_REGS iregs;

iregs.es = FP_SEG((void far*)TxECB); iregs.si = FP_OFF((void far*)TxECB); iregs.bx = IPX_CMD_SEND_PACKET; ipxspx_entry( (void far *)&iregs ); }

/** * .Name IPXRelinquishControl * * .Title Передать управление IPX при ожидании * * .Descr Функция используется при ожидании * завершения приема через опрос поля InUse блока ECB. * * .Params Не используются * * .Return Ничего **/

void IPXRelinquishControl(void) {




- Начало -  - Назад -  - Вперед -



Книжный магазин