Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно отключить клиента в Indy9, Сабж 
:(
    Опции темы
sas099
Дата 1.11.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.10.2007

Репутация: нет
Всего: нет



Думаю тема обсуждалась не раз, но всеже...
Проблема такая:
имеется сервер.К нему приконнекчено несколько клиентов.Раз в 20 сек клиенты шлют на сервер Информацию.Нужно определить если клиент в течении минуты не прислал .... значит он повис.Его надо отключить.Клиенты работают через GPRS.Видно что клиент уже 20 минут не посылает инфу а сервер его видит как законнекченного.Как поступить в этой ситуации?

еще вопрос: делаю отключение коиента таким образом:

procedure ServerFrmMain.Button2Click(Sender: TObject);
var i:integer;
begin
 with Server.Threads.LockList do try
   i:=Count;
   while  i > 0  do begin
     Dec(i);
     TIdPeerThread(Items[i]).Connection.Write('You are Disconnected');
     TIdPeerThread(Items[i]).Terminate;
     (*TIdPeerThread(Items[i]).Connection.Disconnect;*)
   end;
 finally
   Server.Threads.UnlockList;
 end;
end;
===================================================
procedure ServerFrmMain.Button1Click(Sender: TObject);
var i:integer;
begin
 with Server.Threads.LockList do try
   i:=Count;
   memo1.Lines.Clear;
   memo1.Lines.Insert(0,IntToStr(i));
 finally
   Server.Threads.UnlockList;
 end;
end;

После  TIdPeerThread(Items[i]).Terminate; 
вижу тоже самое число приконнекченных клиентов до того момента пока клиент не пошлет что-нить серверу.
После этого вижу этого клиента отконнекченным и кол-во приконнекченных клиентов уменьшается на единицу.Потом слдующи клиент посылает - и опять уменьшается список приконнекченных.
Подскажите где грабли?
PM MAIL   Вверх
MetalFan
Дата 1.11.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



а если Connection.Close ?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sas099
Дата 2.11.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.10.2007

Репутация: нет
Всего: нет



Спасибо, разобрался!
Грабли были в Lock-UnlockList в нутри цикла.
А отключать надо ........Connection.Disconnect(*TIdPeerThread(Items[i]).Connection.Disconnect;*)
все тогда нормально работает!
)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.