Добавление ивентов в ожидающий WSAWaitForMultipleEvents
Вопрос по функции WSAWaitForMultipleEvents.
Можно ли реализовать как-то добавление WSAEvent'a в ожидающий WSAWaitForMultipleEvents?
Я сделал так:
- создал массив HANDLE[20] для Event'ов и обнулил его.
- запустил WSAWaitForMultipleEvents на 20 объектов вышеобозначенного HANDLE[20] с намерением добавлять Event'ы в тот массив по мере подключения клиентов и надеялся что WSAWaitForMultipleEvents будет реагировать на вносимые wsaeventы в массив HANDLE[20].
Но не вышло: Specified event object handle is invalid (то есть обнуленный HANDLE[20] не засчитали за действующие ивенты)...
Как можно реализовать, чтобы в ожидающий WSAWaitForMultipleEvents можно было добавлять еще клиентов по мере их поступления?
http://www.programmingforums.org/thread757.html
хоуп зис хэлпс
хоуп зис хэлпс
Здесь получается, что WSAWaitForMultipleEvent разрывается при accept'e и конечно же появляется возможность добавить туда нового клиента и опять ждать.
Мне же надо, чтобы accept был в своем отдельном потоке и создавал отдельные потоки для N клиентов.
Если созданный поток уже обслуживает N клиентов, то создать еще один. Если нет - то добавить клиента на обрабоку в существующий поток.
Выходом видится вешание N клиентов на один event. Так и сделал пока.
выполнять после WSAWaitForMultipleEvent WSAEnumNetworkEvents
и проверять на значение в структуре LPWSANETWORKEVENTS lpNetworkEvents.