Backward Compatibility for Windows Sockets 1.1 Applications
A version of this page is also available for
4/8/2010
Winsock 2.2 maintains full backward compatibility with Winsock 1.1 on two levels: source and binary. This maximizes interoperability between Windows Sockets applications of any version and Winsock implementations of any version. It also minimizes problems for users of Winsock applications, network stacks, and service providers. Current Windows Sockets 1.1 Specification-compliant applications operate on a Winsock 2.2 implementation without modification of any kind, as long as at least one TCP/IP service provider is properly installed.
Source Code Compatibility
Source code compatibility means, with few exceptions, that all the Winsock 1.1 functions are preserved in Winsock 2.2.
Winsock 1.1 application source code can be moved to the Winsock 2.2 system by including the new header file, Winsock2.h, and performing a straightforward link with the appropriate Winsock 2.2 libraries.
Binary Compatibility
Winsock 1.1 applications work, unchanged at a binary level, with Winsock 2.2. This is because Winsock 2.2 includes TCP/IP-based transport and name service providers.
Following installation guidelines for Winsock 2.2 ensures that the introduction of Winsock 2.2 functionality presents no negative impact to existing Winsock 1.0-based applications on a target device.
Note
To obtain information about the underlying TCP/IP stack, Winsock 1.0 applications currently use certain members of the WSADATA structure (obtained through a call to WSAStartup). These members includeiMaxSockets, iMaxUdpDg, and lpVendorInfo.
While Winsock 2.2 applications ignore these values because they cannot uniformly apply to all available protocol stacks, safe values are supplied to avoid breaking Winsock 1.1 applications.
See Also
Concepts
Compatible Name Resolution for TCP/IP in the Windows Sockets 1.1 API