Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ICQ [D6, WinXP]


Swinger ©   (2002-03-24 00:26:00) 

Здравствуйте! Я пишу програму на подобии ICQ (но при этом пишу также и свой собственный сервер). И мне стало интересно следующее:
Как в ICQ реализована задержка? :) Объясню: Там каждые 5-10 секунд (если не прав - то скажите как часто) отправляется сообщение на сервер с информацией о том что я всё ещё в сети. Так мне было интересно как они делают эту задержку? Если её делать стандартным TIMER"ом (т.е. чтобы через 5 секунд посылал сообщение на сервер и запускал себя заново), то не будет ли тормозить? И будут ли при этом другие процедуры работать или таймер возьмёт все ресурсы на себя?


Nikolay M.   (2002-03-25 14:47:00) [1]

1) На торри была (есть?) компоненточка - отправляет/принимает аськины мессаги, ведет контакт-лист, может принимать всякие статусы (online, away, n/a...). Могу выслать - не жалко (только напиши на мыло). А руками писать аську - упишешься. Пробовали - забили через месяц. Нужен ОЧЕНЬ хороший уровень знаний протоколов, архитектуры сетей и всего, что с этим связано.
А безглючная маленькая аська зовется Miranda :)

2) Memo.Lines.Append не пробовал?


Swinger   (2002-03-24 10:23:00) [2]

2 Deus: Результат, которого я хочу дщобиться - безглючная, маловесящая, альтернатива аськи для внутренней сети (впрочем на сможет и для инета работать, но я не думаю, что я такой великий программер, чтобы написать сервер-прогу, которая бы жрала немного ресурсов пир большом количестве пользователей.. :))

> Memo1.Lines.Add(s) добавляет строку в конец текста. Ты чтото
> не так делаешь....

Это не я делаю что-то не так, а компилятор Д6.. :)

2 Donal_Graeme: Спасибо за информацию о протоколе аси.. просто я тоже начал думать что если отсылать информациюот клиента сереру каждые 5-10 секунда, то даже при 20 онлайн пользователях сервак будет очень сильно подтормаживать.. :)

2 KeyMaster: можно поподробней узнать?


Donal_Graeme   (2002-03-24 04:26:00) [3]

так называемый Keep_Alive клиентская ася шлёт примерно раз в две минуты :-) если точнее, то максимальный интервал установлен в 140 секунд.
Плюс ещё если сервер посылает сообщение клиенту, а клиент не отвечает сигналом "получено", то сервер повторяет раз 10 посылку сообщения, после чего решает, что клиент отключился.


Doom   (2002-03-24 01:08:00) [4]

2 Deus
Насчет попроще сначала - это вы зря. Это цель вполне реальная. Другие делают, а он что хуже?


Keymaster   (2002-03-24 01:02:00) [5]

Я сейчас пишу подобныйкомпонент...


Deus   (2002-03-24 00:42:00) [6]

Аська написана на сях. Поэтому вопрос насчёт компонента - некорректен.
Если не изменяет память - на torry.net было что-то похожее.

Memo1.Lines.Add(s) добавляет строку в конец текста. Ты чтото не так делаешь....

P.S. Не обижайся, но я бы посоветовал взяться за что-нибудь попроще сначала. Если, конечно, ты хочешь получить какой-то результат...


Deus   (2002-03-24 00:33:00) [7]

Тормозить не будет.
Другие процедуры работать будут.


Swinger   (2002-03-24 00:31:00) [8]

Сюда же ещё пару вопросов:
1) Может кто подскажет компонент, которым в ICQ реализован список пользователей? Т.е. чтоб слева был значок (нет сообщения - просто значок, есть сообщение - мигает иконка), а справа текст. Я вначале думал просто о двух столбцах TListBox, но мне этот вариант не очень нравится.
2) И ещё один вопрос (пытался поиском найти на него ответ тут, но не нашёл): Почему при добавлении строки в Memo у меня строчки ывводятся в любо порядке? Т.е. я пишу Memo1.Lines.Add(s)... ожет кто подскажет, как добавлять строчку в низ Мемо? Т.е. чтоб каждое следующее сообщение шло ниже предыдущего?

Заранее благодарен за помощь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо