Поделиться через


Совместимое разрешение имен для TCP/IP в API сокетов Windows 1.1

Заметка

Все функции сокетов Windows 1.1 для разрешения имен зависят от сетей TCP/IP IPv4. Разработчикам приложений настоятельно не рекомендуется использовать эти функции, относящиеся к транспорту, которые поддерживают только IPv4.

 

Разработчики приложений должны использовать следующие функции, которые являются независимыми от протокола и поддерживают разрешение имен IPv6 и IPv4.

Сокеты Windows 1.1 определили ряд подпрограмм, используемых для разрешения имен с сетями TCP/IP (IP версии 4). Иногда они называются функциями getXbyY и включают следующие функции:

gethostname
gethostbyaddr
gethostbyname
getprotobyname
getprotobynumber
getservbyname
getservbyport

Кроме того, были определены асинхронные версии этих функций.

WSAAsyncGetHostByAddr
WSAAsyncGetHostByName
WSAAsyncGetProtoByName
WSAsyncGetProtoByNumber
WSAAsyncGetServByName
WSAsyncGetServByPort

В Winsock2.dllреализованы также две функции, используемые для преобразования точечной нотации IPV4 в строковые и двоичные представления соответственно.

inet_addr
inet_ntoa

Чтобы сохранить строгую обратную совместимость со сокетами Windows 1.1, все старые функции IPv4-только поддерживаются, пока присутствует хотя бы один поставщик пространства имен, поддерживающий семейство адресов AF_INET (эти функции не относятся к IP-версии 6, обозначаемой AF_INET6).

Ws2_32.dll реализует эти функции совместимости с точки зрения новых средств разрешения имен, независимых от протокола, с помощью соответствующей последовательно сти вызовов функций WSALookupServiceBegin/Next/End. Ниже приведены сведения о том, как функции getXbyY сопоставляются с функциями разрешения имен. WSs2_32.dll обрабатывает различия между асинхронными и синхронными версиями функций getXbyY, поэтому обсуждаются только реализации синхронных функций getXbyY.

В этом разделе описано разрешение совместимых имен для TCP/IP в API сокетов Windows 1.1. В следующем списке описываются разделы, описанные в этом разделе:

разрешения именProtocol-Independent

регистрации и разрешения имен