> That is, if you request FD_WRITE events for a pre-existing socket with
> WSAEventSelect, you will not get one until the outbound network buffer has
> been filled and then has partially emptied. (This is incredibly broken,
> but Microsoft evidently has no intention of fixing it.)
I think you should distinguish between 'broken' and 'not what I am used
to'. Microsoft have always had an edge triggered delivery here, rather
than the level triggered delivery on BSD. But WinSock is not BSD
sockets. If you want to remember what the state is, associate a flag
with the socket. Microsoft are very good at retaining compatibility,
'fixing it' in your terms would be crass breakage.