Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
| TarasBer |
12.07.2011 12:07
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Я хочу ловить сообщения от сокета через GetMessage.
В общем суть такова. Есть оконная программа, которая большую часть времени, понятно, ждёт сообщения от пользователя или системы. Она работает только тогда, когда приходит сообщение. Но тут мне понадобилось добавить сетевой режим. Понятно, надо чтобы программа работала только когда приходит сообщение в GetMessage или из сокета. Ну и стал вопрос - когда проверять сокет на наличие сообщений? Если делать это непрерывно в главном цикле, то программа загрузит процессор, плохо. Если делать только в ответ на сообщения GetMessage, то программа не будет проверять сеть, пока пользователь не двинет мышкой (или ещё что), плохо. Делать по таймеру тоже как-то не очень, потому что сообщения могут прийти чаще, а могут прийти и реже, чем сработает таймер. Делать лишний поток, который в блокирующем режиме ждёт сообщение от сокета, а потом посылает окну информацию о приходе через SendMessage - ну как последнее средство, я потоков до смерти боюсь (мне проще и надёжнее эмулировать, когда нужны процессы, которые должны идти параллельно с разной производительностью). Нельзя ли поставить хук или ещё что? -------------------- |
![]() ![]() |
| TarasBer |
12.07.2011 13:11
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Константу для номера сообщения надо придумать самому? А по какому принципу хотя бы, чтобы не пересечься ни с кем?
Аналогичный вопрос про номер порта для сокета - его тоже выбирают, взяв число от балды, надеясь, что больше никто не будет его использовать? -------------------- |
TarasBer Сообщение от сокета о приходе сообщения. 12.07.2011 12:07
IUnknown WSAAsyncSelect, и выбирай с какого сокета при како... 12.07.2011 12:31
IUnknown Обычно достаточно от WM_APP до $BFFF, то есть... 12.07.2011 14:41
TarasBer > Оставь номер порта при бинде нулевым - систем... 12.07.2011 14:55![]() ![]() |
|
Текстовая версия | 8.12.2025 16:46 |