![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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)... ожет кто подскажет, как добавлять строчку в низ Мемо? Т.е. чтоб каждое следующее сообщение шло ниже предыдущего?
Заранее благодарен за помощь.