![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
sas099 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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; вижу тоже самое число приконнекченных клиентов до того момента пока клиент не пошлет что-нить серверу. После этого вижу этого клиента отконнекченным и кол-во приконнекченных клиентов уменьшается на единицу.Потом слдующи клиент посылает - и опять уменьшается список приконнекченных. Подскажите где грабли? |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
а если Connection.Close ?
-------------------- There are always someone smarter than you... |
|||
|
||||
sas099 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.10.2007 Репутация: нет Всего: нет |
Спасибо, разобрался!
Грабли были в Lock-UnlockList в нутри цикла. А отключать надо ........Connection.Disconnect(*TIdPeerThread(Items[i]).Connection.Disconnect;*) все тогда нормально работает! ) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |