Может ли кто-нибудь предложить надежный способ обработки системных ошибок в случае использования перекрывающихся сокетов IO и IOCP?
Описание MSDN обременительно в этом аспекте. Это говорит о том, что для GetQueuedCompletionStatus
кода возврата FALSE должен быть последующий вызов GetLastError
для получения кода ошибки при неудачной операции. Однако мы знаем, что для WSA-функций вместо этого следует вызывать WSAGetLastError
(GetLastError
возвращает 0 при ошибке сокета). Итак, первая часть вопроса - как это работает на практике?
Другая проблема - обработка ошибок, если пакеты завершения извлекаются GetQueuedCompletionStatusEx
. MSDN описывает только обработку ошибок для этого вызова, не говоря уже о получении кодов ошибок отдельных неудачных операций.
Заранее благодарим за все ответы и комментарии.