Windows Sockets 1.1 defined a number of routines that were used for name resolution with TCP/IP networks. These are customarily called the getXbyY functions and include the following:
gethostname |
gethostbyaddr |
gethostbyname |
getprotobyname |
getprotobynumber |
getservbyname |
getservbyport |
Asynchronous versions of these functions were also defined:
WSAAsyncGetHostByAddr |
WSAAsyncGetHostByName |
WSAAsyncGetProtoByName |
WSAAsyncGetProtoByNumber |
WSAAsyncGetServByName |
WSAAsyncGetServByPort |
These functions are specific to TCP/IP networks and developers of protocol-independent applications are discouraged from continuing to utilize these transport-specific functions. However, in order to retain strict backwards compatibility with Windows Sockets 1.1, all of the above functions continue to be supported as long as at least one name space provider is present that supports the AF_INET address family.
The WS2_32.DLL implements these compatibility functions in terms of the new, protocol-independent name resolution facilities using an appropriate sequence of WSALookupServiceBegin, WSALookupServiceNext, WSALookupServiceEnd function calls. The details of how the getXbyY functions are mapped to name resolution functions are provided below. The WS2_32.DLL handles the differences between the asynchronous and synchronous versions of the getXbyY functions, so only the implementation of the synchronous getXbyY functions are discussed.