WaitForConnect may only call back to CreateClientSocket when the socket is writable or something. When it does so for a pending socket, it is fasely assumed to have succeeded and a subsequent read/write operarion will fail.