Holy cow, I wrote a book!
Why does the function
exist when there is already the perfectly good function
Actually, you know the answer too, if you sit down and think about it.
Winsock was originally developed to run on both 16-bit Windows
and 32-bit Windows.
Notice how the classic Winsock functions are based on window messages
for asynchronous notifications.
In the 16-bit world, there was no
Therefore, Winsock had to provide its own version
for the 16-bit implementation.
And since source code compatibility is important,
there was a 32-bit version as well.
Of course, the 32-bit version looks kind of stupid in retrospect
if you aren't aware of the 16-bit version.