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. |
| На выходе: | Регистры не используются. |