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