Я собираюсь написать консольное приложение win32, которое будет работать как сервер. Я должен установить тайм-аут, чтобы принять функцию, как без подключения в 10 с отключение порта. Как я знаю, здесь есть какой-то способ:
Асинхронный способ. Но я пишу консольное приложение, поэтому не могу использовать эту функцию wsaasyncselect.
С функцией выбора. Но есть слово, что этот путь небезопасен. Если клиент отправил пакет RST, а затем отключился, функция выбора считает, что этот сокет все еще доступен для чтения, и функция принятия будет оставаться там вечно.
С функцией тревоги. Во-первых, я стараюсь не использовать его, потому что это неожиданно для такого приложения, во-вторых, я беспокоюсь о том, безопасен он или нет.
Итак, здесь я искренне прошу вас найти способ разрешить тайм-ауту функции accept, который должен быть безопасным для потоков, и, что лучше, приятным способом.