Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

Как отловить disconnect   Найти похожие ветки 

 
Alex870   (2005-08-31 12:37) [0]

Здравствуйте!
Я использую компоненты Indy (TIdTCPServer и TIdTCPClient). Для того, чтобы узнать какой клиент подключился к серверу я использую процедуру OnConnect (у сервера):

procedure TForm1.ServerConnect(AThread: TIdPeerThread);
var
ConnHost : String;
begin
ConnHost := AThread.Connection.Socket.Binding.PeerIP;
...
end;

а при отключении OnDisconnect:
procedure TForm1.ServerDisconnect(AThread: TIdPeerThread);
var
DisconnHost : String;
begin
DisconnHost := AThread.Connection.Socket.Binding.PeerIP;
...
end;

Но если приложение клиента завершилось аварийно (с помощью TaskManagera) то PeerIP в процедуру ServerDisconnect не передается и возникает ошибка сокета (правда только при отладке). Как мне узнать какой клиент (его IP) отключился? Зарание Спасибо!


 
Alex870   (2005-08-31 14:35) [1]

С этим разобрался - там возникает Exception и его перехватывает OnException, в которой DisconnHost := AThread.Connection.Socket.Binding.PeerIP; работает, а вот если наооборот: сервер застрелился, тогда как клиенту узнать, что он уже не подключен?


 
Digitman ©   (2005-08-31 15:19) [2]

клиент узнает об этом по исключению, возникшему при вызове read- или write-метода



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
14-1132162975
Knight
2005-11-16 20:42
2005.12.11
Вопрос к владельцам Nokia 6100... у кого есть прошивка?


1-1131691942
Shopot
2005-11-11 09:52
2005.12.11
Как нарисовать в Delphi объекты как в Excel е?


2-1132947934
Kot
2005-11-25 22:45
2005.12.11
Нажтая клавиша в кодировке ANSI


2-1132918235
Quadro
2005-11-25 14:30
2005.12.11
Странная ошибка


4-1128575004
ProgramMaster
2005-10-06 09:03
2005.12.11
Отслеживание появления окна