Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Добавление ивентов в ожидающий WSAWaitForMultipleEvents

5.4K
08 ноября 2010 года
cursor
114 / / 05.01.2008
Здравствуйте.
Вопрос по функции 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 можно было добавлять еще клиентов по мере их поступления?
5.4K
09 ноября 2010 года
cursor
114 / / 05.01.2008
Спасибо, но этот вариант не подходит.
Здесь получается, что WSAWaitForMultipleEvent разрывается при accept'e и конечно же появляется возможность добавить туда нового клиента и опять ждать.
Мне же надо, чтобы accept был в своем отдельном потоке и создавал отдельные потоки для N клиентов.
Если созданный поток уже обслуживает N клиентов, то создать еще один. Если нет - то добавить клиента на обрабоку в существующий поток.

Выходом видится вешание N клиентов на один event. Так и сделал пока.
65K
17 ноября 2010 года
boogie
1 / / 17.11.2010
Делать WSASetEvent из других потоков.
выполнять после WSAWaitForMultipleEvent WSAEnumNetworkEvents
и проверять на значение в структуре LPWSANETWORKEVENTS lpNetworkEvents.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог