5.1. Функции для работы с сокетами
5.2. Функции для работы с сетевыми адресами
На входе: | BX | = | 00h. |
AL | = | Тип сокета: 00h - короткоживущий; FFh - долгоживущий. | |
DX | = | Запрашиваемый номер сокета или 0000h, если требуется
получить динамический номер сокета. Примечание. Байты номера сокета находятся в перевернутом виде. | |
На выходе: | AL | = | Код завершения: 00h - сокет открыт; FFh - этот сокет уже был открыт раньше; FEh - переполнилась таблица сокетов. |
DX | = | Присвоенный номер сокета. |
На входе: | BX | = | 01h. |
DX | = | Номер закрываемого сокета. | |
На выходе: | Регистры не используются. |
На входе: | BX | = | 02h. |
ES:SI | = | Указатель на буфер длиной 12 байт, содержащий полный сетевой адрес станции, на которую будет послан пакет. | |
ES:DI | = | Указатель на буфер длиной 6 байт, в который будет запи-сан непосредственный адрес, т. е. адрес той станции, которой будет передан пакет. Это может быть адрес моста. | |
На выходе: | AL | = | Код завершения: 00h - непосредственный адрес был успешно вычислен; FAh - непосредственный адрес вычислить невозможно, так как к указанной станции нет ни одного пути доступа по сети. |
CX | = | Время пересылки пакета до станции назначения (только если AL равен 0) в тиках системного таймера. Тики таймера следуют с периодом примерно 1/18 секунды. |
На входе: | BX | = | 09h. |
ES:DI | = | Указатель на буфер длиной 10 байт, в который будет записан адрес станции, на которой работает данная программа. Адрес состоит из номера сети Network и адреса станции в сети Node. | |
На выходе: | Регистры не используются. |
На входе: | BX | = | 04h. |
ES:DI | = | Указатель на заполненный блок ECB. Необходимо заполнить
поля: ESRAddress; Socket; FragmentCnt; указатели на буферы фрагментов Address; размеры фрагментов Size. | |
На выходе: | Регистры не используются. |
На входе: | BX | = | 03h. |
ES:DI | = | Указатель на заполненный блок ECB. Необходимо заполнить
поля:
ESRAddress; Socket; ImmAddress; FragmentCnt; указатели на буферы фрагментов Address; размеры фрагментов Size.В заголовке пакета IPX необходимо заполнить поля: PacketType; | |
DestNetwork; DestNode; DestSocket. | |||
На выходе: | Регистры не используются. |
На входе: | BX | = | 0Bh. |
ES:SI | = | Указатель на структуру, содержащую сетевой адрес станции:struct NetworkAddress { unsigned char Network[4]; unsigned char Node[6]; unsigned char Socket[2]; } | |
На выходе: | Регистры не используются. |
На входе: | BX | = | 05h. |
AX | = | Время задержки в тиках таймера | |
ES:SI | = | Указатель на блок ECB. | |
На выходе: | Регистры не используются. |
На входе: | BX | = | 08h. |
На выходе: | AX | = | Интервальный маркер. |
На входе: | BX | = | 06h. |
ES:SI | = | Указатель на блок ECB. | |
На выходе: | AL | = | Код завершения: 00h - функция выполнена без ошибок; F9h - обработка ECB не может быть отменена; FFh - указанный ECB не используется. |
На входе: | BX | = | 0Ah. |
На выходе: | Регистры не используются. |