This is a reimplementation of ws2_32.dll (Winsock 2) around wsock32.dll (Winsock 1.1) in order to support Winsock 2 applications under operating systems that don't support it, such as Windows NT 3.51.
The following is the list of Winsock 2 exclusive functions that are supported by this library. Not all functions may be listed, since there are functions which target interaction with the network drivers directly which isn't a priority:
- ✔️ Full support
⚠️ Partial support- ❌ Not supported yet
| Ordinal | Function | Support | Notes |
|---|---|---|---|
| 7 | getsockopt |
May have Winsock2-exclusive opts | |
| 10 | ioctlsocket |
May have Winsock2-exclusive cmds | |
| 21 | setsockopt |
May have Winsock2-exclusive opts | |
| 24 | WSApSetPostRoutine |
❌ | |
| 25 | FreeAddrInfoEx |
❌ | |
| 26 | FreeAddrInfoExW |
❌ | |
| 27 | FreeAddrInfoW |
❌ | |
| 28 | GetAddrInfoExA |
❌ | |
| 29 | GetAddrInfoExCancel |
❌ | |
| 30 | GetAddrInfoExOverlappedResult |
❌ | |
| 31 | GetAddrInfoExW |
❌ | |
| 32 | GetAddrInfoW |
❌ | |
| 33 | GetHostNameW |
❌ | |
| 34 | GetNameInfoW |
❌ | |
| 35 | InetNtopW |
❌ | |
| 36 | InetPtonW |
❌ | |
| 37 | SetAddrInfoExA |
❌ | |
| 38 | SetAddrInfoExW |
❌ | |
| 41 | WSAAccept |
❌ | |
| 42 | WSAAddressToStringA |
❌ | |
| 43 | WSAAddressToStringW |
❌ | |
| 45 | WSACloseEvent |
✔️ | |
| 46 | WSAConnect |
❌ | |
| 47 | WSAConnectByList |
❌ | |
| 48 | WSAConnectByNameA |
❌ | |
| 49 | WSAConnectByNameW |
❌ | |
| 50 | WSACreateEvent |
✔️ | |
| 64 | WSAEnumNetworkEvents |
✔️ | |
| 67 | WSAEventSelect |
✔️ | Implemented around WSAAsyncSelect |
| 74 | WSAHtonl |
❌ | |
| 75 | WSAHtons |
❌ | |
| 78 | WSAIoctl |
❌ | Stubbed |
| 86 | WSANtohl |
❌ | |
| 87 | WSANtohs |
❌ | |
| 88 | WSAPoll |
❌ | |
| 91 | WSARecv |
❌ | |
| 92 | WSARecvDisconnect |
❌ | |
| 93 | WSARecvFrom |
❌ | |
| 95 | WSAResetEvent |
✔️ | |
| 96 | WSASend |
❌ | |
| 97 | WSASendDisconnect |
❌ | |
| 98 | WSASendMsg |
❌ | |
| 99 | WSASendTo |
❌ | |
| 100 | WSASetEvent |
✔️ | |
| 119 | WSASocketA |
❌ | |
| 119 | WSASocketw |
❌ | |
| 120 | WSAAddressToStringA |
❌ | |
| 121 | WSAStringToAddressW |
❌ | |
| 124 | WSAWaitForMultipleEvents |
✔️ | |
| 175 | freeaddrinfo |
❌ | Stubbed |
| 176 | getaddrinfo |
❌ | Stubbed |
| 177 | getnameinfo |
❌ |
In order to use this library, you can simply drop it on the same path as the target application. Alternatively if you want to install the library globally, you can drop it along the rest of the libraries on your system on %WINDIR%\system32.
At the moment Visual C++ 6.0 is required to build the project, but Visual C++ 4.2 support may be considered in the future.
winsock351 has only been tested under Windows NT 3.51, but other systems such as early versions of Windows 95 may work too.
This project has been partly inspired by MattKC's backport of .NET to Windows 9x. The MSVC workflows have been adapted from there.