У меня есть сервер на основе select. Сокеты находятся в режиме блокировки, но для функции select() я использую 250 мс. тайм-аут.
В основном мой сервер принимает только одного клиента и отправляет данные этому клиенту. Он работает неделями без проблем, если я просто отправляю данные с сервера на клиент.
Но я понял, что если клиент отправляет данные на сервер через 3-4 часа в строке select(), это дает исключение переполнения стека (0xC00000FD). Я десятки раз просматривал MSDN-страницу Select(), но об этом ничего не упоминалось. Я действительно застрял. Любая помощь будет оценена.
Кстати, нашел в сети, пример;
http://tangentsoft.net/wskfaq/examples/basics/select-server.cpp
здесь, приняв соединение с клиентом, он устанавливает его в неблокирующий режим. И это прокомментировано;
// Mark the socket as non-blocking, for safety.
Что означает «безопасность» выше? Так ты думаешь, это моя проблема? Потому что в моей реализации подключенные находятся в режиме блокировки?
заранее спасибо