Я создал клиент-серверное приложение с компонентом IdTCPServer. Клиенты подключаются и поддерживают постоянное соединение на протяжении всего жизненного цикла приложения. Если сетевое подключение прерывается (что случается довольно часто, поскольку клиенты подключаются с помощью беспроводных карт AirCard), клиент автоматически повторно подключается. Это все работает нормально.
Моя проблема связана с сокетами на сервере, соответствующими потерянному соединению. Они не обнаруживают падение сети и отключаются сами. Прочитав несколько связанных статей, я узнал, что сервер не может узнать, было ли разорвано соединение. Он должен ждать какого-то события, чтобы узнать это.
Итак, мой вопрос: должен ли я встроить в свой сервер какой-то механизм для периодической «обработки» сокетов с разорванными соединениями? И если да, то как? Я думал, что одним из способов будет прокрутить все соединения и попытаться отправить им данные. Я считаю, что это вызовет необходимое «событие».