Windows прослушивает сокет и ввод из командной строки одновременно - PullRequest
0 голосов
/ 08 августа 2011

Моему приложению необходимо прослушивать ввод с клавиатуры от пользователя из командной строки, а также прослушивать данные в сокетах одновременно в одном цикле.Это приложение в настоящее время работает на Linux, и вышеописанное может быть легко достигнуто с помощью select и добавлением stdin и сетевых сокетов в список массивов fd_set, данный для вызова select.В зависимости от активности, приложение может обрабатывать пользовательский ввод ИЛИ данные в сокете.

Теперь я портирую это приложение на Windows, и я не очень знаком с Windows.Как можно достичь вышеуказанного в Windows?То есть прослушивание активности на stdin, а также на сокетах.Любые указатели приветствуются.

1 Ответ

0 голосов
/ 17 августа 2011

Мне удалось решить это следующим образом.

Использовал API WaitForMultipleObjects ().Для этого API используйте дескриптор для дескриптора консоли STD_INPUT.И для каждого интересующего вас сокета создайте WSACreateEvent и добавьте его в массив дескрипторов, передаваемых в API WaitForMultipleObjects ().

Когда возвращается API WaitForMultipleObjects (), вы можете найти дескриптор, для которогоактивность обнаружена и действуй соответственно.

...