![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Люди, у меня проблема! У меня задача: есть программа-сервер, и программа-клиент. Обое осуществляют связь между собой через Indy (на сервере установлен компонент TIdTCPServer, в клиенте - TIdTCPClient). При неожиданном закрытии клиента сокет закрывается, но - автоматически. Как проследить закрытие сокета?
Просто у меня есть своя серверная структура данных, где отмечается, в сети клиент или нет. Так вот при неожиданном закрытии клиента сервер еще считает, что клиент открыт, хотя сокета уже нету. |
|
#2
|
||||
|
||||
|
Отлеживай закрытие программы-клиента и отправляй на сервер сообщение
|
|
#3
|
|||
|
|||
|
Цитата:
Я тоже так думал, но например если отключилось электричество или кто-то нажал кнопку ресет на компьютере - в таких случаях программа не отслеживает никаких событий ![]() |
|
#4
|
||||
|
||||
|
реализуй небольшой "пинг-диалог"
Server -> Client : Are you online? Client -> Server : Yes, I'm online. с определённой периодичностью и таймаутом |
|
#5
|
|||
|
|||
|
Цитата:
все спасибо, я нашел: там есть в сервере метод OnDisconnect |