Конференция "Сети" » список активных клиентов (Indy) [D7, WinXP]
 
  • Медвежонок Пятачок © (13.10.11 12:58) [60]
    Ошибка здесь дизайнерская. И она в том, что через пять минут после отладки тебе снова захочется прикрутить к этому коду таймер.
  • GekaNaz (13.10.11 13:01) [61]
    да нет.. таймер мне не нужен, а этот цикл не выдает список всех активных клиентов :(
  • Сергей М. © (13.10.11 13:16) [62]

    > тот цикл не выдает список всех активных клиентов


    А чего он выдает ?)
    Ты соизволишь наконец привести реальные данные протоколов отладочного логирования событий на сервере ?
  • GekaNaz (13.10.11 14:08) [63]
    написал класс потокобезопасный там храню копию данных из TMyData, по событию коннекта или дисконнекта обновляю список в листбоксе, все работает.

    TO Сергей М.
    а цикл который пробегается по локлисту выдает все тоже самое:
    connect  Вася
    Connect Петя
    Connect Дима

    цикл выдает всех трех юзеров...
    делаем дисконнект пети ( то есть он сам отключается)

    и теперь цикл выдает
    Вася  (коннектед)
    бывший петя (connected=false)  то есть цикл теперь проходит от 1 до 2 и выдает только васю.. так как петя уже не на связи, предполагаю что на 3 месте в листе есть и дима но имея число коннектов 2 до него дело не доходит
  • Сергей М. © (13.10.11 14:18) [64]
    между
    > делаем дисконнект пети ( то есть он сам отключается)

    и
    > и теперь цикл выдает

    должно произойти и быть полностью и успешно обработанным событие OnDisconnect с Петиным контекстом.

    Онго было ?
  • GekaNaz (13.10.11 14:45) [65]
    а разве в OnDisconnect  с контекстом чего-то надо делать ?, сейчас пока только пишется в лог.. что этот клиент отконнектился... , я порылся в примерах там , вроде ничего не делают, только в лог пишут и все
  • Сергей М. © (13.10.11 15:07) [66]

    > разве в OnDisconnect  с контекстом чего-то надо делать ?


    А как же !?
    Клиент же отвалился, объект Data (читай - твоё прикладное расширение контекста существовавшего до этого коннекта), описывающий параметры клиента (пусть даже и не залогинившегося), более не актуален, его следует тут же в обработчике дисконнекта и уничтожить, потому что после возврата из OnDisconnect индейский объект-контекст будет разрушен, причем в ходе своего разрушения он удалит сам себя из указанного ему списка контекстов (см. [34])
  • Anatoly Podgoretsky © (13.10.11 15:25) [67]
    Вместо разреженых массивов, в данном случае используются какие либо списки. Достаточно посмотреть примеры по ICS они все построены на списков и объекты идентифицируются без каких либо дополнительных ИД
  • Anatoly Podgoretsky © (13.10.11 16:43) [68]
    > GekaNaz  (13.10.2011 14:08:03)  [63]

    Если connected=false, то почему же ты его не удалил из списка.
  • Сергей М. © (13.10.11 16:49) [69]

    > Anatoly Podgoretsky ©   (13.10.11 16:43) [68]


    > почему же ты его не удалил из списка.


    зачем его удалять-то, если см. [34] ?
 
Конференция "Сети" » список активных клиентов (Indy) [D7, WinXP]
Есть новые Нет новых   [134436   +21][b:0][p:0]