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


Пример c использованием ESR - часть 3


printf("Ожидание ответа от сервера\n"); printf("Нажимайте любые клавиши\n"); printf("Для отмены нажмите клавишу <ESC>\n");

// Ожидаем прихода ответа от сервера

while(completed_ecb_ptr == NULL) { if( getche() == 27) { IPXCloseSocket(&Socket); exit(0); } } if(RxECB.CCode == 0) { printf("\nПринят ответ от сервера '%s'\n", RxBuffer); }

// Закрываем сокет

IPXCloseSocket(&Socket); exit(0); }

В листинге 8 приведен текст программы ESR, составленный на языке ассемблера. Программа загружает регистр DS адресом сегмента данных программы, затем записывает в глобальную переменную completed_ecb_ptr содержимое регистров ES:SI.

; =================================================== ; Листинг 8. Программа ESR ; Файл esr.asm ; ; (C) A. Frolov, 1992 ; ===================================================

.286 .MODEL SMALL

.DATA

_completed_ecb_ptr dd 0

.CODE

PUBLIC _ipxspx_esr PUBLIC _completed_ecb_ptr

_ipxspx_esr PROC FAR

mov ax, DGROUP mov ds, ax

mov word ptr _completed_ecb_ptr+2, es mov word ptr _completed_ecb_ptr, si

retf _ipxspx_esr ENDP

end




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