![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать номер отключившегося клиента в TServerSocket? [WinXP]
Galiaf © (2005-07-04 03:29:00)Сдравствуйте. В TServerSocket при отправке текста необходимо указывать номер клиента от 0 до количество клиентов - 1, можно ли в событии onclientdisconect узнать какой именно клиент отключился(желательно узнать его номер), или есть какие-нибудь другие способы это реализовать?
Digitman (2005-07-04 08:40:00) [1]
> можно ли в событии onclientdisconect узнать какой именно
> клиент отключился(желательно узнать его номер)
procedure TMyForm.SrvScktDisconnect(Sender: TOBject; Socket: TCustomWinSocket);
var
i: Integer;
begin
with SrvSckt.Socket do
for i := 0 to ActiveConnections - 1 do
if Connections[i] = Socket then
begin
ShowMessage('Отключился клиент № ' + IntToStr(i));
break;
end;
end;
> необходимо указывать номер клиента от 0 до количество клиентов
> - 1
идентифицировать клиента по его номеру в списке активных соединений нельзя
пусть некий в момент времени список выглядит так :
0 - КлиентА
1 - КлиентВ
2- КлиентС
здесь КлиентСимеет "номер 2"
теперь, допустим, КлиентВ отключился
после отключения КлиентаВ список будет выглядеть уже по-иному :
0 - КлиентА
1- КлиентС
отсюда наглядно видно, что ставить клиенту в однозначноесоответствие его номер в списке активных соединений ни в коем случае нельзя, ибо состояние списка может измениться в любой момент