![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про ServerSocket и ClientSocket [D7, WinXP]
civic.qip © (2008-08-25 07:08:00)Простое приложение, у одного есть компанент ServerSocket1 у другого ClientSocket1.
Если Клент разрывает соединение так: ClientSocket1.Active:=false;
То у сервера срабатывает событие OnDisconnect, ВСЕ ЗАМЕЧАТЕЛЬНО!!!
Но если машина на которой запущен клиент, случайно выключиться, то сервер никак не риагирут!
В чем же дело? Как отловить серверу то, что клиент отключился?
DVM (2008-08-25 16:31:00) [1]
> Но если машина на которой запущен клиент, случайно выключиться,
> то сервер никак не риагирут!
Сервер должен периодически опрашивать клиентов. Например, посылая им какие либо данные. Если посылка не удалась - клиент мертв. Еще лучше, чтобы клиент отвечал на тестовые посылки сервера, т.е. что-то типа ping-а было.
Сергей М. (2008-08-25 09:44:00) [2]
> В чем же дело?
В том что "случайно выключившийся" клиент не может послать серверу FIN-пакет по причине своей скоропостижной смерти.
> Как отловить серверу то, что клиент отключился?
Послать что-нибудь клиенту.
Если клиент мертв, возникнет исключение.