Написал сервер на не блок сокетах TCP. Использую WSAAsyncSelect. Но вот проблемка есть. Если клиент не вызывает shutdown, а сразу CloseSocket, то сервер не отлавливает закрытие сокета и клиент как бы есть. Из-за чего и возникает море ошибок. Фактически сервер работает как пизанская башня.
SnugForce В маску параметра event функции WSAAsyncSelect нужно добавить этот FD_CLOSE, а потом ловить. 100% работает.
Может не правильно выразился... Если клиент не вызывает shutdown, а сразу closeSocket, то сообщения FD_CLOSE НЕТ. Если клиент вызывает shutdown, а потом closeSocket, то все нормально попадает FD_CLOSE.