Если у вашей программы есть и другие дела, кроме работы с сокетом ввода / вывода, вам не следует блокировать в первую очередь.
Вы утверждаете, что ваш поток должен подождать, но это всего лишь отражение текущего дизайна вашей программы. Вы должны изменить его, чтобы он работал с неблокирующими розетками. Любая сетевая проблема может быть решена с помощью неблокирующих сокетов.
Поскольку вы используете Winsock, у вас есть много вариантов здесь, а не только select()
. select()
является хорошим выбором, только если ваше приложение должно работать на многих платформах, и вы не можете использовать превосходные (но взаимно несовместимые) альтернативы, доступные на каждой современной платформе.