Как правильно предупредить WSAENOBUFS при WSASend на IOCP TCP
От: v2 Украина  
Дата: 05.10.13 20:56
Оценка:
Если я правильно понимаю, то, обычно, перед очередным WSASend на IOCP можно не ждать завершения предыдущего WSASend.
В таком случаи система перекладывает данные к себе, меня по-быстрому отпускает, а сама потихоньку отправляет данные.
Если данных будет слишком — я получу WSAENOBUFS — после чего нормально работать с сокетом уже невозможно (у меня не получилось).

Решение с WSAGetOverlappedResult когда (fWait = false) уж очень некрасивое, а когда (fWait = true) – может усыпить поток навсегда.

Как правильно (не создавая Event-ов или прочей синхры) разрешить эту ситуацию (подождать завершения предыдущего WSASend) ?

Спасибо.
wsaenobufs wsasend iocp
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.