Текущий архив: 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.44 MB
Время: 0.06 c